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클래스를 상속받게 된다.