상속이란 (Inheritance)상속을 말하기 전에 먼저 OOP가 무엇인지 알면 좋을거 같다.-->OOP(Object-Oriented Programming, 객체 지향 프로그래밍) 이란? OOP의 특징으로 상속을 설명할때 가장 쉽게 이해하려면 아래의 그림을 보면 좀 쉽게 다가 올 거다.
이 메소드 OR 변수를 '구현'하는가 그대로 '사용'하는가에 따라서 상속의 형태가 갈리게 된다.
extends (상속)
Car라는 클래스는 Vehicle을 상속 받았다. 그리고 getSpeed() 메소드로 speed를 print 했다.
그리고 하나 더 짚고 가자면.... 다중상속이란 부모클래스가 두개 이상 존재할 수 있다는 것인데, 자바에서는 이를 지원하지 않는다. 즉 , 자바는 다중상속을 지원하지 않는다. 대신 implements(인터페이스)가 등장했다. implements (상속)
implements의 가장 큰 특징은 이렇게 부모의 메소드를 반드시 오버라이딩(재정의)해야 한다. 또한 이 implements는 다중상속을 대신해준다.
이러한 형태로 말이다. 근데 "이러한 구현은 메소드를 어차피 재정의해야되니 '상속'의 의미가 아니지 않냐?" 이런 의문이 들
수 있다. 제가 그랬습니다. 간단 정리
extends는 클래스를 확장하는 거고 implements는 인터페이스를 구현하는 것이다. 참조 사이트
|