728x90
반응형
상속 (Inheritance)
상속은 Class 간의 계층적 관계를 구성하는 문법이다.
상속받은 Class는 상속된 Class의 특성을 그대로 사용하는 것이 가능하다.
이때 상속되는 Class를 SuperClass(부모 클래스), 상속받는 Class를 SubClass(자식 클래스)라고 한다.
한 클래스는 하나의 SuperClass만을 상속받을 수 있으며 클래스가 그 자체를 상속받는 것은 불가능하다.
extends
extends 키워드를 사용하여 상속을 명시할 수 있다.
예시 코드를 하나 작성해보겠다.
class Number {
public int i, j;
public void PrintNum() {
System.out.println(i);
System.out.println(j);
}
}
class Plus extends Number {
public int k;
public void PrintPlus() {
System.out.println(i+j+k);
}
}
public class Example {
public static void main(String [] args) {
Plus a = new Plus();
a.i = 10;
a.j = 15;
a.k = 5;
a.PrintNum();
a.PrintPlus();
}
}
위 코드에서 Plus Class는 Number Class를 상속받았기 때문에 i, j, PrintNum()에 접근하는 것이 가능하다.
하지만 상속받았다고 하더라도 private으로 명시된 멤버변수에는 접근할 수 없다.
다단계 상속
3개 이상의 클래스 간 상속도 가능하다.
이를 통해서 여러 클래스 간의 계층적 관계를 표현할 수도 있다.
class Number {
public int i, j;
public void PrintNum() {
System.out.println(i);
System.out.println(j);
}
}
class Plus extends Number {
public int k;
}
class PlusPrint extends Plus {
public void PrintPlus() {
int sum = i + j + k;
System.out.println(sum);
}
}
public class Example {
public static void main(String [] args) {
PlusPrint a = new PlusPrint();
a.i = 10;
a.j = 5;
a.k = 15;
a.PrintPlus();
}
}
728x90
반응형
'Java > Java 문법' 카테고리의 다른 글
[Java] 업캐스팅 (UpCasting), 다운캐스팅 (DownCasting) (0) | 2024.10.01 |
---|---|
[Java] 오버라이딩 (Overriding) (0) | 2024.10.01 |
[Java] 배열, Boundary Checking (경계 검사), 비대칭 배열 (0) | 2024.09.30 |
[Java] String, 문자열 비교, String Class 메서드 (0) | 2024.09.30 |
[Java] static method (정적 메서드), instance method (인스턴스 메서드) (0) | 2024.09.30 |