面向对象三大特性之多态(三)

多态,从字面理解就是多种形态。

在生活中的例子也有很多例子,比如:windows系统有Administrator用户,其下有普通用户、Guest用户等不同形态;世界满地是Person,其下有开挂民族、战斗民族等不同形态;同样按下F1键,在word、excel、powerpoint 中弹出的帮助文档都不一样。同一事件发生在不同事物上能产生不同的效果。



多态存在的三个必要条件:

1、要有继承

2、要重写父类的方法

3、父类引用指向子类对象

以下所有内容来自百度百科【http://baike.baidu.com/link?url=r8jM3KDW0ev8U8JAibt-yS9gONRbssROQ1nHrWQPdDCL2I28ChL0Y7kknsSA1A-BZGC0dzS3HQ72DIN7XdEbkrE9axC72Bg-8xo8s0_wyca】

public interface Parent//父类接口
{
    public void simpleCall();
}
public class Child_A implements Parent
{
    public void simpleCall();
    {
    //具体的实现细节;
    }
}
 
public class Child_B implements Parent
{
    public void simpleCall();
    {
    //具体的实现细节;
    }
}
//当然还可以有其他的实现
然后,我们就可以看到多态所展示的特性了:

//父类引用指向子类对象
Parent pa = new Child_A();
pa.simpleCall()则显然是调用Child_A的方法;

Parent pa = new Child_B();
pa.simpleCall()则是在调用Child_B的方法。

所以,我们对于抽象的父类或者接口给出了我们的具体实现后,pa 可以完全不用管实现的细节,只访问我们定义的方法,就可以了。事实上,这就是多态所起的作用,可以实现控制反转。这在大量的J2EE轻量级框架中被用到,比如Spring的依赖注入机制。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值