java
JAVA - extends 상속
extends 는 다른 클래스의 것을 상속받는다고 표현합니다. 이렇게 하면 상속받은 클래스의 함수나 변수를 사용할 수 있습니다.
- 하나의 부모 클래스는 여러 개의 자식 클래스를 가질 수 있습니다.
- 부모 클래스는 자식 클래스의 자원을 이용할 수 없습니다.
- 반대로 자식 클래스는 부모 클래스의 자원을 이용할 수 있습니다.
- 하나의 클래스는 여러 개의 클래스로부터 상속받을 수 없습니다.
- 자식클래스는 또다른 클래스의 부모 클래스가 될 수 있습니다.
다음 예제에서 BB 클래스는 AA 클래스의 것을 상속받았기 때문에 BB 클래스로 AA 클래스의 것을 사용할 수 있게 됩니다.
// ex.1)
public class Ex01 {
public static void main(String[] args) {
BB bb = new BB();
bb.doA();
}
}
// 부모 클래스입니다.
class AA{
public int a;
public void doA() {
System.out.println("doA method");
}
}
// 자식 클래스입니다.
class BB extends AA{ }
아래는 결과 화면입니다.
다음은 BB 클래스는 AA 클래스를 상속받아 AA 클래스를 사용할 수 있지만, CC 클래스는 상속받지 않았기 때문에 CC 클래스의 것을 사용할 수 없습니다.
반대로 CC 클래스는 BB 클래스를 상속받았기 때문에 BB 클래스를 사용할 수 있고, AA 클래스를 사용할 수 있게 됩니다.
// ex.2)
public class Ex01 {
public static void main(String[] args) {
BB bb = new BB();
bb.doA();
CC cc = new CC();
System.out.println(cc.b);
cc.doB();
cc.doA();
}
}
// 부모 클래스입니다.
class AA{
public int a;
public void doA() {
System.out.println("doA method");
}
}
// AA 부모 클래스의 자원을 이용할 수 있지만
// CC 클래스의 자원을 모두 이용할 수 없습니다.
class BB extends AA{
public int b;
public void doB() {
System.out.println("doB method");
}
}
// AA 부모 클래스 자원,
// BB 클래스 자원을 이용할 수 있습니다.
class CC extends BB { }
아래는 결과 화면입니다.
다음은 B 클래스가 A 클래스를 상속하고, a 변수가 동일하다면 B 클래스의 것을 사용합니다.
// ex.3)
public class Ex01 {
public static void main(String[] args) {
B b = new B();
System.out.println(b.a);
}
}
// 부모 클래스입니다.
class A{
public int a = 10;
}
// 자식 클래스입니다.
// 오버라이딩: 부모 클래스에 있는 a 변수는
// B 클래스에도 동일하게 a 변수가 있으므로
// B 클래스의 a 로 수정됩니다.
class B extends A{
public int a = 20;
}
아래는 결과 화면입니다.
0 댓글