[JAVA] 상속관계와 포함관계
상속 관계
- 기존의 클래스로 새로운 클래스를 작성하는 것(코드 재사용)
- 두 클래스를 부모와 자식으로 관계를 맺어주는 것
- 자손은 조상의 모든 멤버를 상속 받는다.(생성자, 초기화 블럭 제외)
- 자손의 멤버 개수는 조상보다 적을 수 없다.(같거나 많다.)
- 자손의 변경은 조상에 영향을 미치지 않는다.
포함 관계
- 포함이란:
- 상속과 저장공간의 차이는 없지만 구조상의 차이가 있다.
package com.example.Inheritance;
class Point{
int x;
int y;
}
//상속 관계
class Circle extends Point{
int z;
}
// 포함관계
class Cirtcle2 {
Point p = new Point();
int z;
}
public class InheritanceTest {
public static void main(String[] args) {
//상속 관계 설정시
Circle c = new Circle();
c.x=1;
c.y=2;
c.z=3;
// 포함관계 설정시
Cirtcle2 c2 = new Cirtcle2();
c2.p.x=1;
c2.p.y=2;
c2.z=3;
}
}
클래스 간의 관계 결정하기
- 상속관계 : a는 b이다.
- 포함관계 : a는 b를 가지고 있다.
단일 상속
- java는 단일 상속만 허용한다.
//에러 발생
Class TvDVD extends Tv,DVD { // 조상은 하나만 허용
}
- 비중이 높은 클래스 하나만 상속관계로, 나머지는 포함관계로 한다.
Object 클래스 - 모든 클래스의 조상
- 부모가 없는 클래스는 자동적으로 Object 클래스를 상속받게 된다.(컴파일러가 자동으로 추가함)
'Language > JAVA' 카테고리의 다른 글
[JAVA] this() vs this 차이점 (0) | 2022.03.15 |
---|---|
[JAVA] 생성자 특징 (기본 생성자) (0) | 2022.03.15 |
[JAVA] 배열 (Array) 다루기 (0) | 2022.03.15 |
[JAVA 복습] 접근 제어자 (Access Modifier) 와 캡슐화 (0) | 2022.02.10 |
[TIL] 컬렉션 - java.util.Queue<E> 인터페이스 & 구현클래스 (0) | 2020.09.08 |
댓글