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



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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值