가자미의 개발이야기
자바의 포함, 상속, 상속 생성자 본문
a. 포함관계
class Circle{
int x;
int y;
int r;
}
class Point{
int x;
int y;
}
다음과 같은 클래스들을 Point를 재사용한 포함관계로 표현하면
class Circle{
Point c = new Point();
int r;
}
class Point{
int x;
int y;
}
이렇게 코드를 재사용할 수 있다.
b. 상속 관계
상속은 어떤 클래스의 모든 특성(변수와 메소드)를 다른 클래스에 그대로 전해주는 것을 의미한다.
상속은 코드 재사용이 아닌 클래스 간의 공통된 규칙을 정의할 때 사용된다.
자바는 c++과는 다르게 복수 상속을 허용하지 않는다.
c. 상속이냐 포함이냐
그렇다면 옳은 상속의 기준은 무엇일까?
클래스들을 말로 풀어봤을 때 어떤 쪽에 해당하는지 확인해보자.
상속 관계 | 포함 관계 |
원은 점이다. (Circle is a Point) | 원은 점을 가지고 있다. (Circle has a Point) |
만약 is a관계가 되지 않는 상속은 옳지 않은 상속이다.
d. 상속 관계의 생성자
상속관계에서 생성자에 대해 알아보자
하위클래스의 인스턴스를 만들때
하위 클래스의 생성자가 실행되기 이전에!! 반드시 상위 클래스의 생성자를 호출해줘야된다!!!
이때 super()를 쓰는데 전달받는 매개변수에 따라 오버로딩된 생성자를 찾아 실행한다.
조상 클래스의 멤버를 접근할 때도 super를 사용할 수 있다. ex) super.name
'Java > 자바 기본 문법' 카테고리의 다른 글
자바 메소드 오버라이딩 (0) | 2021.01.07 |
---|---|
자바 스태틱(클래스변수(메소드))와 상속 클래스의 주의점 (0) | 2021.01.07 |
자바의 배열 (0) | 2021.01.07 |
자바 콘솔 입출력 (0) | 2021.01.07 |
자바 String 클래스와 StringBuilder 클래스 (0) | 2021.01.06 |