추상클래스 (abstract) 와 인터페이스 (interface) 는 비슷한 개념이므로 혼란이 오기 쉽다.
추상클래스 포스팅에는 따로 적지 않았고, 인터페이스 포스팅에만 적었는데,
JAVA는 다중상속이 불가능하다. 단, 다중상속이 불가능함에 따라 인터페이스를 통해 여러가지 객체를 선언한다.
다중상속이라고 생각할 수도 있지만, 다형성이 존재하는 것일 뿐이며 다중구현이라고도 표현한다.
인터페이스와 추상클래스의 공통점
1) 추상메소드를 가지고 있음.
2) 객체 생성이 목적이 아닌, 데이터 타입을 정의하는 것이 목적.
3) 객체 생성은 'anonymous*'를 이용.
인터페이스와 추상클래스의 공통점
1) 상속 및 구현 : 추상메소드는 상속을 통한 사용이고, 인터페이스는 구현을 통한 상속이다.
2) 구성 요소의 차이 : 추상 클래스는 일반 클래스와 동일하게 변수, 메소드의 모든 기능을 사용할 수 있지만, 인터페이스는 상수와 추상 메소드만 존재한다.
3) 단일상속, 다중구현 : 추상 클래스는 상속이므로 단일상속만 지원하고, 인터페이스는 다중 구현이 가능하다.
*anonymous란? (익명 중첩 클래스. 보통 익명클래스라 표현한다.)
익명 클래스. 이름이 없다.
일시적으로 클래스를 사용할 필요가 있을 때 이용하는 클래스로,
무명의 클래스가 부모클래스부터 상속을 받은 인스턴스이다.
이름이 없기 때문에 생성자를 선언할 수 없다.
메소드를 오버라이드 하기 위해 일회용으로 사용되는 클래스이다. 자동으로 오버라이딩되어 재정의가 가능하다.
'JAVA' 카테고리의 다른 글
JAVA 스터디 : 패턴(2) (0) | 2020.11.26 |
---|---|
JAVA 스터디 : 패턴 (싱글톤/전략) (0) | 2020.11.25 |
JAVA 스터디 : 인터페이스 (0) | 2020.11.23 |
JAVA 스터디 : 추상 클래스 (0) | 2020.11.20 |
JAVA 스터디 : 상속 / 오버라이드 (0) | 2020.11.19 |