- 클래스의 기능을 자유롭게 호출하고 기능을 확장하기 위해 먼저 선언된 클래스를 선조(super)로, 기능을 필요로하는 클래스를 후손(this)으로 관계(extends)를 가진 경우를 말한다
- 단일 상속(무조건 선조가 하나)을 원칙으로 하며 다중상속은 클래스 간에 허용되지 않는다
* 후손인 클래스를 선조로 상속받는 것은 가능
- 후손클래스는 선조클래스의 멤버변수와 메서드를 사용할 수 있다
-> 선조클래스를 상속받고 후손클래스에 필요한 추가적인 속성과 기능을 구현
public class 자식클래스 extends 부모클래스 {
}
예제)
public class AA {
protected int a;
protected int b;
public AA(int a, int b) {
this.a = a;
this.b = b;
System.out.println("num1 = " + a + " num2 = " + b );
}
public void getSum(){
System.out.println("합 : " + ( a + b ) );
}
}
public class BB extends AA{
public BB(int a,int b) {
super(a, b);
}
public void getSub() {
System.out.println("차 : " + (a - b));
}
public static void main(String[] args) {
BB a1 = new BB(5,3);
a1.getSum();
a1.getSub();
}
}
num1 = 5 num2 = 3
합 : 8
차 : 2
BB 클래스가 AA 클래스를 상속받음으로써 멤버변수 int a와 int b, 합을 구하는 메소드 getSum()을 사용할 수 있게 된다.
- super : 선조 클래스의 참조 값을 가지고 있는 예약어
-> BB클래스의 생성자에서 AA 클래스의 생성자가 호출되어
a에 5, b에 3을 대입하고 "num1 = 5 num2 = 3"을 출력한다
** super()를 생성자 코드에서 사용할때는 반드시 맨 첫줄에 기술하여야 한다
후손 클래스에서 선조 클래스와 동일한 이름의 메서드를 구현한 경우,
하위클래스에서 동일한 이름의 선조 클래스 메소드를 가리킬 때도 사용한다.
'JAVA' 카테고리의 다른 글
Java 인터페이스 (0) | 2021.08.10 |
---|---|
Java class 04 - 추상클래스 (0) | 2021.08.09 |
JAVA 접근제한자 및 getter & setter (0) | 2021.08.04 |
JAVA class 02 - 생성자 (0) | 2021.08.03 |
JAVA class 01 (0) | 2021.08.02 |