궁금한 것
- 상속의 개념
- extends와 implements의 차이점
- 어떤 클래스일 때 어떤 상속을 사용하는지
- abstract 추상메소드
상속(inheritance) :
기존의 클래스를 재사용하여 새로운 클래스를 정의하는 것.
1. 상속과 인터페이스(계층성)
2. 다형성, 사용편의성(모듈화)
3. 캡슐화, 정보은닉
4. 자료 추상화(모델링)
5. 동적 바인딩 등.
extends와 implements의 차이점 :
extends란 상속 개념의 대표적인 형태로, 부모에서 선언하며 자식은 메소드 혹은 변수를 오버라이딩 없이 직접 사용 가능하다.
클래스는 한개만 상속 받을 수 있다.
implements란 부모는 선언만 하며 내용은 자식에서 오버라이딩 해서 사용해야한다.
여러 interface를 implements 가능하며, 자바에서는 다중상속(부모클래스가 두 개 이상 존재하는 것)을 지원하지 않는데 interface가 다형성 구현 역할을 해준다.
어떤 클래스일 때 어떤 상속을 사용하는지 :
extends는 일반 클래스와 abstract(추상) 클래스 상속에 사용되고, implements는 interface 상속에 사용된다.
class가 class를 상속할 때 --> extends 사용
interface가 interface를 상속할 때 --> extends 사용
class가 interface를 사용할 때 --> implements 사용
interface가 class를 사용할 때 --> extends 사용
abstract 추상메소드 :
하나 이상의 추상메소드를 포함하여 일반 메소드도 포함 할 수 있다.
직접 인스턴스 생성은 못하고 상속만을 위해 사용된다.
추상클래스를 상속한 클래스는 추상클래스의 추상메소드를 반드시 구현해야 한다.