minhe2810 2023. 6. 29. 20:17
public class ParentsClass2{
	public void test(){   
    }	
}

1. 상속

상속이란?

부모로부터 물려받은 자원을 자식이 그대로 사용하거나 수정해서 사용가능 

 

키워드 

extends 

 

상속은 클래스가 객체화된 다음에 내부 자원을 물려받는 것 

JAVA는 한 번에 하나의 클래스만 상속 가능 

생성자를 제외한 나머지자원을 물려받음. ※ 생성자는 물려받을 수 없음! 

 

public class ParentsClass {

}
public class ParentsClass2{
		
}

두 개의 클래스가 있다고 가정

 

public class ChildClass extends ParentsClass{
	char a = 'A';
}

부모 클래스를 상속 받은 자식 클래스 

자식 클래스에서 선언된 변수 a 

public class ChildClass extends ParentsClass, ParentsClass2{

}
//==> 불가능

자바는 한번에 한 개의 클래스만 상속받을 수 있기 때문

 

Public class ChildClass2 extends ParentsClass{
			int a = 10;    
			char a = 'A';     				//가능      
	private char a = 'A'; 					//private 시 불가능 
}

똑같이 부모 클래스를 상속 받은 자식 클래스 

자식 클래스에서는 새롭게 변수를 선언할 수 있고, 

부모에게 물려받은 변수를 사용할 수 있음. 

 

하지만 부모 클래스에서 private라고 선언한 변수일 경우엔 상속 불가능! 

 

다른 용어로는

부모클래스 (슈퍼클래스)

자식클래스 (확장 클래스, 파생 클래스)

 

자식 클래스는 부모로 부터 물려받은 메서드의 내부를 수정할 수 있음. 

하지만!! 선언부를 수정하는 것은 불가능! 

 

부모로부터 물려받은 메서드 내용을 수정하는 기법이 바로 Override 기법이다. 

Override는 반드시 상속이 이루어져야 함! 

 

실제 이클립스에서 상속을 받는 파생 클래스를 만들어보자! 

클래스 생성시 superClass를 선택할 수 있는 공간이 있다. 

브라우저 부분을 클릭하면 상속받을 수 있는 클래스 목록이 뜨며 

그중에는 내가 직접 생성한 클래스들도 있다.

 

이것을 따로 설정을 해주지 않는다면 자동으로 java.lang.Object클래스를 상속받게 된다.