//CastChild.java
class CastChild extends CastParent {
String name = "CastChild";
int age = 20;
CastChild(){
System.out.println("CastChild타입의 객체 생성됨!");
}
CastChild(String name, int age) {
System.out.println("CastChild타입 객체 생성됨!");
this.name = name;
this.age = age;
}
void method1(){
System.out.println("CastChild의 method1()호출됨");
}
void method2(){
System.out.println("CastChild의 method2()호출됨");
}
void method3(){
System.out.println("CastChild의 method3()호출됨");
}
}
----------------------------------------------------
//CastParent.java
class CastParent {
String name = "CastParent";
int age = 50;
//생성자
CastParent(){
System.out.println("CastParent타입의 객체 생성됨!");
}
CastParent(String name, int age) {
System.out.println("CastParent타입의 객체 생성됨!");
this.name = name;
this.age = age;
}
//메소드 오버라이드
void method1() {
System.out.println("CastParent의 method1() 호출됨");
}
void method2() {
System.out.println("CastParent의 method2() 호출됨");
}
}//class
----------------------------------------------------
//CastMain.java
class CastMain {
public static void main(String[] args){
CastParent cp1 = new CastParent(); //부모는 부모 자신을
System.out.println(cp1.name+":"+cp1.age+"\n");
CastChild cc1 = new CastChild(); //자식은 자식 자식을
System.out.println(cc1.name+":"+cc1.age+"\n");
CastParent cp2 = new CastChild(); //부모(상)는 자식(하)을 묵시적 변환
System.out.println(cp2.name+":"+cp2.age+"\n");
CastChild cc2 =(CastChild)cp2; //자식타입 cc2에 부모cp를 자식타입으로 변환 후
System.out.println(cc2.name+":"+cc2.age+"\n");
cp2.method1();
cp2.method2();
// cp2.method3(); //CastParent에는 Method3()없음
System.out.println();
cc2.method1();
cc2.method2();
cc2.method3();
//부모의 method1()과 부모의 method2()호출
System.out.println();
CastParent cp3 = new CastParent();
System.out.println(cp3.name+":"+cp3.age);
cp3.method1();
cp3.method2();
// instanceof
CastParent cp4 = new CastParent();
CastChild cc4 = new CastChild();
CastParent cp5 = cc4;
if(cp4 instanceof CastParent) {
System.out.println("41 cp4 is instance of CastParent");
}
if(cp4 instanceof CastChild) { //안찍힘.
System.out.println("44 cp4 is instance of CastChild");
}
if(cc4 instanceof CastChild) {
System.out.println("47 cc4 is instance of CastChild");
}
if(cc4 instanceof CastParent) {
System.out.println("50 cc4 is instance of CastParent");
}
if(cp5 instanceof CastParent) {
System.out.println("53 cp5 is instance of CastParent");
}
if(cp5 instanceof CastChild) {
System.out.println("56 cp5 is instance of CastParent");
}
if(cc4 instanceof Object) {
System.out.println("59 cc4 is instance of Object");
}
}
}//class
'JAVA' 카테고리의 다른 글
String, StringBuilder, StringTokenizer 클래스의 메소드 사용 예제 (0) | 2009.11.24 |
---|---|
Java Memory Model (0) | 2009.11.21 |
enum 열거 상수 (0) | 2009.11.21 |
실습5 패키지 컴파일 cmd창 (0) | 2009.11.21 |
성적표 출력 실습 (0) | 2009.11.21 |