package practice2;
//부모 클래스
class Parent {
int x = 10;
int y = 20;
void pPrn() {
System.out.println("Parent pPrn()");
}
}
//자식 클래스
class Child extends Parent {
int z = 30;
void cPrn() {
System.out.println("Child cPrn()");
}
}
public class ExtendTest {
public static void main(String[] args) {
Parent p = new Parent(); //부모 객체 생성
p.pPrn(); //부모 자신이 가지고 있는 메서드에 접근 가능
//c.cPrn() 에러! 부모클래스가 가지고 있지 않은 메서드임으로 접근 불가
//마찬가지로 맴버변수 또한 부모클래스가 가지고 있지 않은 z에는 접근이 불가능함
System.out.println(p.x);
System.out.println(p.y);
//System.out.println(p.z); 에러!
System.out.println("==================================");
Child c = new Child(); //자식 객체 생성
c.cPrn(); //자식 객체도 자기가 가지고 있는 메서드에 접근 가능
p.pPrn(); //또한 자식클래스가 부모클래스로부터 상속을 받았기 때문에 부모클래스의 메서드에도 아무런 문제없이 접근 가능
//마찬가지로 맴버변수 또한 자식클래스에 존재하지 않더라도 부모클래스로부터 상속 받았기 때문에 x,y에 접근 가능
System.out.println(c.x);
System.out.println(c.y);
System.out.println(c.z);
}
}