부모클래스가 자식클래스에게 메서드나 필드를 물려주는 행위이다.
확장의 개념으로 이해를 해야한다.
절대로 자식 클래스라고 부모클래스보다 작다고 생각하면 절대 안된다.
- 부모 클래스에 새로운 필드와 메서드가 추가되면 자식 클래스는 이를 상속받아 사용할 수 있다.
- 자식 클래스에 새로운 필드와 메서드가 추가되어도 부모 클래슨느 어떠한 영향도 받지 않는다.
- 자식 클래스의 멤버 개수는 부모 클래스보다 항상 같거나 많다.
클래스간의 관계가 복잡해지는 문제가 생기지 않도록 Java는 다중상속을 허용하지 않는다 !!
클래스간의 관계를 분석하여 관계설정을 해줄 수 있다.
(예시)
(예시)
클래스간의 상속은
extends
키워드를 사용하여 정의한다.
final
final
이라는 키워드가 붙으면 변경할 수 없다 !!
final class
로 선언을 해놓으면 자식 class
로 내려줬을 때도 변경할 수 없어야한다
클래스에 final
키워드를 지정하여 선언하면 최종적인 클래스가 된다.
Q. 이게 무슨 말이냐?
A. 상속이라는 것은 기본적으로
Overriding
을 하기 위해 쓰는 것인데final
로 선언할 경우Overriding
을 하지 못하므로 최종적인 클래스, 즉 더 이상 상속할 수 없는 클래스는 된다.
Object
Object
클래스는 Java 내 모든 클래스들의 최상위 부모 클래스이다.
모든 클래스는 Object
의 메서드를 사용할 수 있다.
부모 클래스가 없는 자식 클래스는 컴파일러에 의해 자동적으로 Object
클래스를 상속받는다.
Object
의 메서드clone()
: 해당 객체의 복제본을 생성하여 반환한다.equals(Object object)
: 해당 객체와 전달받은 객체가 같은지 여부를 반환한다. (True
/ False
)getClass()
: 해당 객체의 클래스 타입을 반환한다.HashCode()
: 자바에서 객체를 식별하는 정수값인 해시 코드를 반환한다. toString()
: 해당 객체의 정보를 문자열로 반환한다.