상속와 인터페이스의 차이점
상속 | 인터페이스 |
extends 키워드 사용 | implements 키워드 사용 |
멤벼변수, 메서드 | 상수, 추상메서드(미완성 메서드) |
public static final int num; - 상수 public abstract void method(); - 추상메서드 |
|
public static final public abstract (생략 가능, 컴파일 시에 추가) |
|
단일 상속 (하위 클래스는 상위 클래스 1개만 상속 가능) |
다중 구현이 가능 (하위 클래스가 여러 인터페이스를 구현할 수 있음) |
추상메서드를 반드시 오버라이딩 하여 구현 | |
인터페이스끼리 상속이 가능 | |
Cat extends Animal | Cat implements Animal |
Cat implements Animal, Pet (다중 구현) |
상속과 인터페이스의 관계
추상 클래스와 인터페이스의 차이점
추상 클래스 | 인터페이스 |
추상클래스를 상속, 확장하기 위해 사용 | 해당 인터페이스를 구현한 객체들에 대해 동일한 사용방법과 동작을 보장하기 위해 사용 |
추상클래스의 특수 형태 | |
필드(멤버변수), 생성자, 구현메서드, 추상메서드 | 상수, 추상메서드 |
new 키워드를 사용하여 인스턴스 생성할 수 없음 | |
추상메서드를 오버라이딩하여, 자식 클래스에서 구현 | |
추상 클래스는 상속을 통해서만 사용 가능 (자식 클래스를 인스턴스 생성하면, 추상클래스도 인스턴스 생성) |
|
extends 키워드 사용 | implements 키워드 사용 |
단일 상속 | 다중 상속 |
추상 클래스와 인터페이스의 관계
출처
'JAVA' 카테고리의 다른 글
[JAVA] 익명 클래스(익명 객체) (0) | 2024.04.23 |
---|---|
[JAVA] 중첩 클래스의 종류, 특징 (0) | 2024.04.23 |
[JAVA] 추상 클래스, 추상 메서드, 추상클래스와 인터페이스 차이점 (0) | 2024.04.22 |
[JAVA] 인터페이스(특징, 형식과 구현), 상속과 인터페이스의 차이점 (0) | 2024.04.22 |
[JAVA] static 멤버(static 필드, static 메서드) (0) | 2024.04.22 |