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 의 우측에 여러 개의 인터페이스를 컴마로 나열하면 됩니다.


만약, 동시에 클래스와 인터페이스를 상속하고 싶다면, 먼저 클래스를 상속하고 나서, 인터페이스를 상속해야 합니다.

by kkikkodev 2015. 6. 16. 10:18