상속

자손은 조상의 모든 멤버를 상속 받습니다

자손은 조상의 모든 멤버를 상속 받는데 이때 생성자와 초기화등록은 제외됩니다. 자손의 멤버 개수는 조상보다 적을수 없으며 적거나 많습니다. 그 이유는 자식이 부모의 모든 멤버를 상속 받기 때문에 멤버가 같게되는 것이고, 만약 본인의 멤버가 추가적으로 있다면 많아지기 때문입니다.

상속의 변경은 조상에 영향을 미치지 않습니다

만약 자식 클래스에 특정 메소드를 추가한다면, 부모클래스에는 영향을 미치지 않습니다.

상속은 보통 아래와 같은 형태로 이루어집니다.

Class Parent {
int age; 
}

Class Child extends Parent{
		void play(){
					System.out.println("놀자");
		}
}

Parent는 부모 클래스 Child는 자식 클래스로 현재 자식 클래스가 부모 클래스를 상속 받고 있는 것을 확인할 수있습니다. 그래서 부모 클래스의 age를 상속 받을 뿐만 아니라 play라는 메소드 멤버 역시 추가가 가능한 것이지요.

상속을 받는 경우와 받지 않는 경우

아래의 예시를 통해서 상속을 받는 경우와 받지 않는 경우를 확인해볼까요? 현재 아래에는 2차원의 좌표를 표기하기위한 코드가 존재합니다. 만약 3D를 표기하기위해 z라는 새로운 지점을 표기하려면 어떻게 해야할까요 저희에게는 두가지 선택지가 존재할 것입니다.

Class Point{
		int x; 
		int y;

}

첫번째. 상속을 받지 않는 경우

상속을 받지 않는 다면 아마도, 새로운 클래스를 만들어 이용해 주어야할 것입니다. 아래와 같이요. 이러한 경우에는 Point 클래스와 무관하기 때문에 Point 클래스가 바뀌어도 영향을 받게 될 것입니다.

Class 3DPoint{
		int x; 
		int y;
		int z;

}

두번째 상속을 받는경우.

상속을 받는 다면 아래와같이 이용해줄 수있겠죠? 이 클래스는 Point와 관련이 있어, 만약 Point 클래스가 변경점이 생긴다면 영향을 받게될 것입니다.

	Class 3D extends Point {
				int z;
}