응용 SoftWare/JAVA

상속 관계에서 객체 형변환

Hyun CHO 2016. 12. 1. 13:09

상위 클래스

class  Parent

{

String name = "조현";

int age = 35;


void setName(String name){

this.name = name;

}

void setAge(int age){

this.age = age;

}

String getName(){

return name;

}

int getAge(){

return age;

}

}


=====================================================================


하위 클래스

class  Child extends Parent //하위 클래스

{

String name = "조현II";

String tel = "010-9142-1348";

String getName(){ //overiding

return "["+name+"]";

}

void prn(){

System.out.println(name+" = "+age);

}

}


===================================================================

메인
class  InheritanceTest
{
public static void main(String[] args) 
{
//상속 관계에서 객체 형변환
Child c1 = new Child();
System.out.println("이름 = "+c1.getName());
c1.prn();
//클래스의 형변환
//크래스의 형변환은 상속관계에서 하위 클래스 객체를 상위 클래스로 형변환 할 수 있다.
//상위 클래스에서 하위 클래스로 형변환은 불가능하다.
//하위 클래스에만 있는 메소드는 상위 클래스로 형변환시 하위 클래스의 메소드는 소멸한다.
Parent p1 = (Parent)c1;
System.out.println("이름 = "+p1.getName());
//p1.prn(); //하위 클래스에만 있는 메소드
System.out.println("tel="+c1.tel);
//System.out.println("tel="+p1.tel);
}
}