너굴셉 2021. 4. 21. 12:54

상속

 

상위클래스의 자원(변수,메서드)을 하위클래스에서 상속받아 사용하는 것.

 

 

----------------------------------------개념

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); // 부모는 자식의 자원을 쓸수없다

	}

}