상속(Inheritance)
- 기존의 클래스로 새로운 클래스를 작성하는 것(코드의 재사용)
- 두 클래스를 부모와 자식으로 관계를 맺어주는 것
1 | class 자식클래스 extends 부모클래스 { |
2 | // ... |
3 | } |
1 | class Parent{} |
2 | class Child extends Parent { |
3 | // .... |
4 | } |
- 자손은 조상(부모의 부모)의 모든 멤버를 상속받음(생성자, 초기화블록 제외)
- 자손의 멤버 개수는 조상보다 적을 수 없음(같거나 많음)
1 | class Parent { |
2 | int age; |
3 | } |
4 | |
5 | class child extends Parent {} |
- 자손의 변경은 조상에 영향을 미치지 않음
1 | class Parent { |
2 | int age; |
3 | } |
4 | |
5 | class Child extends Parent { |
6 | void play() { |
7 | System.out.println("play!!"); |
8 | } |
9 | } |
1 | class Point { |
2 | int x; |
3 | int y; |
4 | } |
1 | // Point와 관계없는 클래스 |
2 | class Point3D { |
3 | int x; |
4 | int y; |
5 | int z; |
6 | } |
1 | // Point를 상속 |
2 | class Point3D extends Point { |
3 | int z; |
4 | } |
- 결과적으로 위의 코드와 아래 코드의 멤버는 동일하게 3개입니다.
- SmartTv에서 정의된 것은
caption
과displaycaption()
밖에 없지만 부모에게 상속받은 변수, 함수들은 사용 가능