210421_4(상속)
상속
상위클래스의 자원(변수,메서드)을 하위클래스에서 상속받아 사용하는 것.
----------------------------------------개념
class---------------- Super--->인스턴스 ==> 부모는 자식의 자원사용불가, 3개만 사용가능
3개 자원
↓
상속
class----------------Sub --->인스턴스 ==>가용자원의 갯수는? 5개
2개 자원
------------------------------------------표현
자바 표현 : Sub extends Super
extends <===확장
------------------------------------------실제모습
하위클래스가 상위클래스를 포함하고있는 모습을 생각하면된다.
Sub [ Super[3개] + 확장2개 ]
-------------------------------------------주의
A-----------------------조상
가
B C----------부모 : A와 BC의 관계는 상소
가 가
D-----------------------자식 : BC와 D의 관계는 다중상속(금지)
가
자바는 모호성 발생을 피하기 위해서 다중상속을 금지한다
참조 C++은 다중상속이 가능하다.
package chapter12;
class Chosun {
String name = "Chosun";
}
class Korea extends Chosun {
String K_name = "Korea";
}
public class Money {
public static void main(String[] args) {
Korea k = new Korea();
System.out.println(k.name); //korea의name 호출
System.out.println(k.K_name); // korea의 k_name호출
}
}
package chapter12;
class Chosun2 {
String name = "Chosun";
public String attack() {
return "활";
}
}
class Korea2 extends Chosun2 {
String k_name = "Korea";
public String k_attack() {
return "K2 소총";
}
}
public class Money2 {
public static void main(String[] args) {
Korea2 k = new Korea2();
System.out.println(k.attack());
System.out.println(k.k_attack());
Chosun2 c = new Chosun2();
System.out.println(c.attack());
// System.out.println(c.k_name); // 부모는 자식의 자원을 쓸수없다
}
}