본문 바로가기

IT Programmer/Java (자바 과정)

추상 클래스 (abstract class)

- 오로지 상속만을 위한 클래스

- 미완성 클래스 (abstract 키워드 사용)

- 객체 생성은 안되지만 참조형 변수 타입으로는 사용가능

 

장점)

- 일관된 인터페이스 제공

 

인터페이스

메소드의 통일성을 부여하기 위해 추상 메소드만 따로 모아놓은 것

상속 시 인터페이스 내에 정의된 모든 추상메소드 구현해야함.

 

[접근제한자] interface 인터페이스명{

 

- 다중상속이 가능

: 여러 클래스로부터 상속을 받으며 복합적인 기능을 가진 클래스를 쉽게 작성 가능

서로 다른 클래스로부터 상속받은 멤버 간의 이름이 같은 경우 문제 발생,

특징 

- 모든 인터페이스의 메소드는 묵시적으로 public 이고 abstract 

- 변수는 묵시적으로 public static final : 인터페이스 변수의 갑 변경 시도시 컴파일시 에러 발생

- 객체 생성은 안되나 참조형 변수로는 가능

 

장점)

- 상위 타입 역할로 다형성을 지원하여 연결

- 해당 객체가 다양한 기능 제공시에도 인터페이스에 해당하는 기능만을 사용하게 제한 가능

- 공통 기능 간의 일관성 

 

추상 / 인터페이스 차이