객체 지향 프로그래밍에서 부모 클래스의 멤버를 자식 클래스에게 물려줄 수 있다. 이 두 클래스의 관계를 부모와 자식, 조상과 후손(파생), super class와 sub class라고 한다.
상속은 클래스 멤버를 재활용할 수 있다. BB가 AA를 상속받으면 AA에 있는 one()과 two()를 사용할 수 있다. 이러한 재활용 덕분에 효율적으로 개발할 수 있고, 개발 시간을 절약해준다.
상속은 아래와 같은 방법으로 할 수 있다.
class 자식 extends 부모 {}
상속은 하나의 클래스만 받을 수 있다. (다중 상속 불가능) 다시말해, 여러 개의 부모 클래스를 상속할 수 없다.
따라서 extends 뒤에는 하나의 부모 클래스만 와야 한다.
package oop0914;
//종단클래스는 상속 받을 수 없다
//final class AA{}
class AA {
private void zero() {} //상속되지 않음
public void one() {
System.out.println("AA.one()...");
}
public void two() {
System.out.println("AA.two()...");
}
}//class end
class BB extends AA { //자식 클래스 BB, 부모 클래스 AA
public void three() {
System.out.println("BB.three()...");
}
}//class end
class CC extends BB { //자식 클래스 CC, 부모 클래스 BB
public void four() {
System.out.println("CC.four()...");
}
}//class end
/*
class DD {}
class EE extends AA, DD {} 에러. 클래스 간의 상속은 단일 상속만 가능하다
*/
public class Test03_inheritance {
public static void main(String[] args) {
// 상속 Inheritance
/*
- 재활용
- 부모와 자식, 조상과 후손(파생), super class와 sub class
- extends 확장, implements 구현
- 형식) 자식 extends 부모 {}
*/
AA aa = new AA();
aa.one();
aa.two();
//aa.zero(); 에러. private 속성은 클래스 내부에서만 접근 가능하다
System.out.println("------------");
BB bb = new BB();
bb.three();
bb.one();
bb.two();
//bb.zero(); 에러. private 속성은 상속되지 않는다
System.out.println("------------");
CC cc = new CC();
cc.four();
cc.three();
cc.one();
cc.two();
}//main() end
}//class end
'웹개발 교육 > Java' 카테고리의 다른 글
[34일] Java (33) - Object 클래스 (0) | 2022.09.14 |
---|---|
[34일] Java (32) - override (0) | 2022.09.14 |
[34일] Java (30) - Calendar 클래스 (0) | 2022.09.14 |
[34일] Java (29) - Wrapper 클래스 (0) | 2022.09.14 |
[33일] Java (28) - getter와 setter (0) | 2022.09.13 |