구현 상속(extends 관계)
인터페이스 상속(implements 관계)
상속(Inheritance)
- 기존의 클래스로 새로운 클래스를 작성하는 것(코드의 재사용)
- extends 키워드 사용
- 두 클래스는 부모와 자식 관계를 형성
- 자식 클래스는 조상 클래스의 모든 멤버를 상속 받음(생성자, 초기화 블럭 제외)
- 자식 클래스의 변경은 조상 클래스에 영향을 미치지 않음
- 조상 클래스의 변경은 자식 클래스에 영향을 미침
- 부모가 없는 클래스는 Object 클래스를 상속 받게 된다.
포함 관계
- 클래스의 멤버로 참조변수를 선언하는 것
- 작은 단위의 클래스를 만들고, 이 들을 조합해서 클래스를 만드는 것
class Point{
int x;
int y;
}
class Circle{
Point c = new Point();
int r;
}
관계
상속관계 - is a, ~은 ~이다.
포함관계 - has a, ~은 ~을 가지고 있다.(90%)
예시 - 원은 점이다. or 원은 점을 가지고 있다.
단일 상속
- Java는 단일 상속만 허용한다.
- 단일 상속의 단점은 인터페이스로 보완 가능
- 비중이 높은 클래스 하나만 상속관계로, 나머지는 포함관계로 한다.