Java/Java Concept

[Java] abstract , interface

군우 2018. 3. 6. 18:00

추상클래스 

abstract class


추상클래스의 특징

1. 상속의 관계를 형성하기위한 상위클래스

2. 인스턴스화 시키기 위해서 정의한 클래스가 아니다.


예를 들어 인스턴스화 하지않은 데이터를 저장하는 상위 클래스가 있다

friend 클래스이고 이클래스는 기본 정보를 가지고 있고, 더 상세한 내용은

schoolfriend가 가지고 있다. schoolfriend의 생성자에서 상세내용을 가지고 있고 포함하는 기본내용은 friend 클래스에서 가지고 잇다. 이 friend클래스를 참조하는 인스턴스를 만들면 오류가 생길 수 있기 때문에 만들지 않는데

이렇게 만들지 못하게 하는 것을 abstract class라고 한다. 


abstract method ; 

추상메소드

클래스의 메소드가 완성되지 않은 형태. 



interface 

추상화를 더욱 추상화 시킨 것


추상 클래스와 비슷한 것 처럼 보이지만  사용하는 목적이 다르기 대문에 특징을 명확히 구별할 수 잇어야 한다.

인터페이스는. 이 인터페이스를 상속한 클래스들에게서 항상 같은 동작을 보장하기 위하여 사용한다.


추상클래스는,  슈퍼 클래스를 상속받았을때 해당 클래스의 내용을 확장하려할 때 사용한다. 

이 말의 뜻은 슈퍼클래스 즉, 최상위 클래스를 만들고 그 내용에 더 상세한것을 만들기 위해, 상속하는 애들을 둘때 쓴다. 최상위 클래스를 만드는 것.


인터페이스의 특징

-다중 상속을 지우너한다.  추상클래스는 다중 상속이 불가함.

-인터페이스 구성물은 상수, 추상 메소드로 딱 2종류.  (껍데기)

-인터페이스 내에 존재하는 변수는  무조건 public static final로 선언된다.

-인터페이스 내에 존재하는 메소드는 무조건  public abstract 로 선언된다.


- 자바 인터페이스란?(interface) -

​> 추상클래스의 일종

> 실제 구현된 것이 전혀 없는 클래스

추상메소드와 상수만 가질 수 있음



- 자바 인터페이스(interface) 특징 -

> 인스턴스 생성 불가

> 미리 정해진 규칙을 정해 구현하도록 하는데 사용

> 다중 상속이 가능하며, 키워드는 implements



- 자바 인터페이스(interface) 작성 -

> Class 대신 interface를 씀

> 멤버변수는 Public static final 이어야 하며 생략가능

> 멤버메소드는 Public abstract 이어야 하며 생략가능

> 중첩클래스는 Static 이어야 하며 생략가능


- 자바 인터페이스(interface) 장점 -

> 개발시간을 단축시킬 수 있음

> 표준화가 가능함

> 서로 관계없는 클래스들에게 관계를 맺어 줌

> 독립적인 프로그램이 가능함(영향력을 감소)