글
extends 와 implements 는 둘 다 클래스나 인터페이스를 상속할 때 쓰이는 키워드입니다.
자식 |
부모 |
사용하는 키워드 |
클래스 (class) |
클래스 (class) |
extends |
클래스 (class) |
인터페이스 (interface) |
implements |
인터페이스 (interface) |
인터페이스 (interface) |
extends |
인터페이스 (interface) | 클래스 (class) | - |
extends 는 Class 에서 Class 를 상속할 때, 혹은 Interface 에서 Interface 를 상속할 때 사용하는 키워드입니다. implements 는 Class 에서 Interface 를 상속할 때 사용하는 키워드입니다. (Interface 에서 Class 를 상속하는 것은 불가능합니다.)
interface 에서 클래스를 상속하는 것이 불가능한 이유는, interface 특성상, 상수들과 추상 메소드들로만 구성되어 있는데, 여기에, 변수들과 일반 메소드를 가지고 있는 클래스를 상속하게 되면, interface 의 규칙이 깨지게 되기 때문입니다.
참고로, extends 는 하나의 클래스만 우측에 위치할 수 있고, (다중상속 불가) implements 는 여러 개의 인터페이스가 우측에 올 경우, 컴마 (,) 로 나열하면 됩니다. 또한, 인터페이스에서 여러 개의 인터페이스를 상속할 때도, extends 의 우측에 여러 개의 인터페이스를 컴마로 나열하면 됩니다.
만약, 동시에 클래스와 인터페이스를 상속하고 싶다면, 먼저 클래스를 상속하고 나서, 인터페이스를 상속해야 합니다.
'4.1) OCJP > 관련 이론 및 문법' 카테고리의 다른 글
관련 이론 및 문법 - String 클래스 VS StringBuilder 클래스 (0) | 2015.06.19 |
---|---|
관련 이론 및 문법 - String 클래스 (0) | 2015.06.19 |
관련 이론 및 문법 - 접근 제어 지시자 (0) | 2015.06.17 |
관련 이론 및 문법 - this VS super (0) | 2015.06.17 |
관련 이론 및 문법 - 메소드 오버로딩 (method overloading) (0) | 2015.06.17 |
관련 이론 및 문법 - 변수의 영역 (scope) (0) | 2015.06.16 |
관련 이론 및 문법 - 기본 생성자, 상속시 부모 생성자 호출, super (0) | 2015.06.16 |
관련 이론 및 문법 - 메소드 오버라이딩 (method overriding) (0) | 2015.06.16 |
관련 이론 및 문법 - 가변 인자 (varargs = variable arguments) (0) | 2015.06.16 |
관련 이론 및 문법 - 추상 클래스 (abstract class) (0) | 2015.06.16 |
RECENT COMMENT