面向对象---多态

多态,是面向对象的程序设计语言最核心的特征。多态,意味着一个对象有着多重特征,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。从程序设计的角度而言,多态可以这样来实现(以java语言为例):


{
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的依赖注入机制。

  • 马士兵对多态的讲解
    在马士兵老师的例子里,我们看到,c为cat下的一个属性,所以它的数据指向是指向的new cat()括号中的子类属性的,而且animals这个父类的单个属性,注意,在之前的讲解中,如果c为animals的属性的话,一旦cat调用这个属性,指向new cat()只能获得到animals中的属性,而不指向cat中子类特有的属性.
    lady的属性中,有name和animals pet,在"11"中,将c的属性传递给pet.但是注意,这个时候c被当做animals,所以只能访问父类中所存在的属性.根据内存图,来说code segment中是存在方法的.例子中存在3个enjoy方法(都为animals中的引用重写),如果根据引用类型,那么调用的就应该是animals中的enjoy,但是注意在多态中这个时候调用的是实际中的enjoy方法(实际中的new的方法),动态绑定.面向对象中的核心

多态存在的三个条件

  1. 继承关系
  2. 重写
  3. 父类指向子类对象.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 多态:一个对象具备多种形态。(父类的引用类型变量指向了子类的对象)或者是接口 的引用类型变量指向了接口实现类的对象...
    字节码阅读 378评论 0 1
  • OC面向对象—多态 OC面向对象—多态 一、基本概念 多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没...
    不会打滚儿的狮子阅读 1,282评论 1 2
  • /* 面向对象的特征三:多态性 1.多态性指的是什么?多态性,可以理解为一个事物的多种表型形态。 1)方法的重载与...
    DarkMonster阅读 474评论 0 0
  • 一.多态的定义: 1.在生物学中,是指一个生物或物种可以有多种不同的形式或阶段。 2.在OOP中,多态是指一个对象...
    少帅yangjie阅读 392评论 0 1
  • 抛开电视节目减减脂,看看书,充实的糊涂 步行➕散步一共6公里 加油,我要瘦瘦瘦
    丽丽我我阅读 227评论 1 0

友情链接更多精彩内容