面向对象的三大特征之多态(第三个必要条件)

。。。

必要条件:<1>要有继承

 <2>要有重写

 <3>父类的应用指向子类的对象(向上转型)


说说第三点吧。难理解。

多态,举个例子吧,例如打印机,它可以有黑白打印机,彩色打印机,3d打印机,功能繁多的打印机就可以看做打印机的子类.


Marking  a = new csMarking;//(marking意为打印机)

为什么要有以上的行为呢?    因为子类相对于父类,子类的功能更强大,属性更为独特。所以可以通过父类的应用指向子类的对象这种方法来实现更强大的功能。


实例代码如下:

//父类 
public class Father{ 
    //父类有一个打孩子方法 
    public void hitChild(){ 
    } 
} 
//子类1 
public class Son1 extends Father{ 
    //重写父类打孩子方法 
    public void hitChild(){ 
      System.out.println("呜呜呜。。。"); 
    } 
} 
//子类2 
public class Son2 extends Father{ 
    //重写父类打孩子方法 
    public void hitChild(){ 
      System.out.println("略略略。。。"); 
    } 
} 
//子类3 
public class Son3 extends Father{ 
    //重写父类打孩子方法 
    public void hitChild(){ 
      System.out.println("跑路喽。。。"); 
    } 
} 
//测试类 
public class Test{ 
    public static void main(String args[]){ 
      Father father; 
      father = new Son1(); 
      father.hitChild(); 
      father = new Son2(); 
      father.hitChild(); 
      father = new Son3(); 
      father.hitChild(); 
    } 
} 
 
 

可以发现,父类的调用出现了三种不同的结果

注意: 只有在重写的时候,父类可以调用,在重载的时候,因为参数变了,不可调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值