JAVA/자바의 정석

[자바의 정석 - 기초편] 7. (1) 상속 (Inheritance) / 포함 (composite) / 단일 상속 / Object 클래스

서영22 2023. 11. 29. 14:16

 상속 (Inheritance) 

기존의 클래스로 새로운 클래스를 작성하는 것 ( 코드의 재사용)

 

두 클래스를 부모와 자식으로 관계를 맺어주는 것

 

class 자식 클래스 extends 부모 클래스 {
         ...
}

class Parent { }
class Child extends Parent {
         ...
}

 

 

 

상속의 규칙

- 자손은 조상의 모든 멤버를 상속 받음 (생성자, 초기화 블럭 예외)

 

-  자손의 멤버 개수는 조상보다 적을 수 없음 (항상 같거나 많음)

 

-  자손의 변경은 조상에 영향을 미치지 않음

 

-  부모 클래스에 변경이 있다면 자식클래스에 영향을 줌

 

 

 

 

 포함 (composite) 

클래스의 멤버로 참조변수를 선언하는 것

 

작은 단위의 클래스를 만들고, 이들을 조합해서 클래스 만듦

 

 

 

 

 클래스 간의 관계 결정하기 

상속관계 : ~는 ~이다 (is - a)

포함관계 : ~는 ~을 가지고 있다 (has - a)

 

 

 

 

 

 

 

 단일 상속 (Single Inheritance) 

하나의 부모만 상속받는 것

 

 

-  java는 단일 상속만 허용 (C++은 다중 상속 허용)

 

-  비중이 높은 클래스 하나만 상속 관계로, 나머지는 포함 관계로 함

 

 

 

 

 Object 클래스 

모든 클래스의 조상

 

 

-  부모가 없는 클래스는 자동적으로 Object 클래스를 상속받게 됨 ( class 클래스 이름 extends Object {...} )

 

-  모든 클래스는 Object 클래스에 정의된 11개의 메서드를 상속받음

    ex) toString(), equals(Object obj), hashCode(), ...