java 多态性以及 上下转换 代码

来源:互联网 发布:vmware 配置网络 编辑:程序博客网 时间:2024/06/09 23:11


class Object1{                             //类一
public void tell1(){
System.out.println("Object1 tell1()");
}

public void tell2(){
System.out.println("Object1 tell2()");
}

public void tell4(){
System.out.println("Object1 tell4()");
}


}


class Object2 extends Object1{                           //继承类一
public void tell1(){
System.out.println("Object2 tell1()");
}
public void tell3(){
System.out.println("Object2 tell3()");
}

}


class Object3 extends Object1{         //类三继承类一
public void tell1(){
System.out.println("Object3 tell1()");
}
}


public class objectDemo {
 
public static void main(String[] args) {
//向上转型,即: 父类 父类对象=子类实例(自动完成)
Object2 p2=new Object2();
Object1 p1=p2;//父类 父类对象=子类实例
p1.tell1();  //Object2 tell1(),调用重写后的方法
p1.tell2();  //Object1 tell2()
System.out.println();
//向下转型,即: 子类 子类对象=(子类) 父类实例(强制转换)(必须先向上转型)
Object2 p3=(Object2) p1;
p3.tell1();
p3.tell2();
p3.tell3();    //全部可以调用
System.out.println();
//对象多态性的简单应用
say(new Object2() );
say(new Object3());    //两句均调用 tell4()
}

public static void say(Object1 p){
p.tell4();
}


}
0 0
原创粉丝点击