美文网首页
面向对象---多态

面向对象---多态

作者: 关先生的IT博客 | 来源:发表于2016-10-09 23:29 被阅读0次

多态,是面向对象的程序设计语言最核心的特征。多态,意味着一个对象有着多重特征,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。从程序设计的角度而言,多态可以这样来实现(以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. 父类指向子类对象.

相关文章

  • Java基础day08笔记:多态|多态中成员的特点|多态的应用示

    01-面向对象(多态-概念) 接下来说一下面向对象的第三个特征:多态。 何为多态呢? 其实...

  • 宅男知识大补丸 学多态 认包包

    java零基础入门-面向对象篇(十) 多态 面向对象的三大特征,封装,继承我们讲完了,这次来讲多态。 多态就是指一...

  • OC面向对象—多态

    OC面向对象—多态 OC面向对象—多态 一、基本概念 多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没...

  • Java学习day-07:面向对象

    一、面向过程和面向对象 1.面向对象与面向过程的区别: 面向对象具有三大特征;封装,继承,多态;面向对象与面向过程...

  • Kotlin入门学习(二)

    新的篇章 面向对象 面向对象-封装 面向对象-继承 面向对象-抽象类和多态 接口 委托和代理 by关键字 委托...

  • 对象和面向对象的介绍

    对象分为 面向对象和基于对象: 面向对象:面向对象定义: 可以创建自定义类型、很好的支持继承和多态。面向对象的语言...

  • C#之面向对象基础篇

    面向对象编程:简称OOP 面试题:什么是面向对象? 答:封装,继承,多态即为面向对象 面相对象的方法: 面向对象的...

  • 面向对象

    面向对象有3大特性:封装、继承、多态1、介绍面向对象编程 面向对象编程(Object Oriented Progr...

  • python 高级 面向对象编程(OOP)

    面向对象有3大特性:封装、继承、多态 1、介绍面向对象编程 面向对象编程(Object Oriented Pro...

  • 再议封装、继承、多态

    封装 面向过程和面向对象区别 继承 多态 运行结果:

网友评论

      本文标题:面向对象---多态

      本文链接:https://www.haomeiwen.com/subject/iljmyttx.html