美文网首页
JavaSE梳理七:多态

JavaSE梳理七:多态

作者: 今天比昨天努力 | 来源:发表于2019-11-08 12:52 被阅读0次

1,多态

在面向对象设计中,多态是继数据抽象和继承之间的第三种基本特征。多态作用消除类型之间的耦合关系。多态方法调用允许一种类型表现出与其他的相似类型的区别,只要他们都是从同一基类导出。区别在于根据方法行为的不同而表现出来。又被称为:动态绑定,后期绑定或运行时绑定。

将接口和实现分离开来:多态是分离做什么和怎么做。“实现隐藏”通过将细节“私有化”将接口和实现分离开。

Java对象的多态性体现在向上转型(自动)和向下转型(强制)。

2,绑定

绑定:将一个方法调用同一个方法主题关联起来被称为绑定。后期绑定(动态绑定或运行时绑定):在运行时根据对象的类型进行绑定。除了static和final方法(private方法也属于final方法)之外,其他所有的方法都属于后期绑定。

总结:只有非private方法才可以被覆盖;在导出类,对于基类中的private方法最好使用不同名称。

3,可扩展性:

在一个设计良好的oop程序中,只与基类接口通信,可以做到程序可扩展性。因为在基类新添的功能,在新类不需要任何改动就可以应用。

4,缺陷:域和静态方法

只有普通的方法是多态的。任何域访问操作都将由编译器解析不是多态的。静态方法不具有多态性。静态方法是与类而不是单个对象相关联的。

5,构造器

构造器不具有多态性,隐式static。作用是检查对象是否被正确的构造。

调用顺序:在其他事情发生之前,将分配给对象的存储空间初始化二进制的零--->调用基类构造器,如果存在被覆盖的方法,那么调用被覆盖后的方法,要在导出类构造器之前调用,由于之前步骤,导致初始值为0--->按声明顺序调用成员的初始化方法--->调用导出类构造器的主体。

准则:用尽可能简单的方法使对象进入正常状态;尽量避免调用其他方法。唯一安全调用的使基类中的final方法,private方法。因为不会被覆盖。

6,协变返回类型

SE5中添加的。表示在导出类中的被覆盖方法可以返回基类方法的返回类型的某种导出类型。

总结:如果不运用数据抽象和继承,就不能理解,创建多态的例子。多态不能被单独看,需要和其他特性协同工作。


相关文章

  • JavaSE梳理七:多态

    1,多态 在面向对象设计中,多态是继数据抽象和继承之间的第三种基本特征。多态作用消除类型之间的耦合关系。多态方法调...

  • JavaSE之多态

    转型:向上转型(上溯造型)、向下转型(下溯造型) 向上转型:父类引用指向子类对象。 父类的引用 = 子类的对象(也...

  • JAVASE学习笔记-多态

    定义 多态是父类引用创建子类对象,目的是方便一个对象能调用不同的子类方法,以此形成“多态”。例如:Humen hm...

  • 03 多态梳理

    2. 多态的定义 事物在运行过程中存在不同的状态 3. 多态的存在有三个前提: 1.要有继承关系 extends2...

  • JavaSE梳理十一:异常

    异常基本概念:用名字代表发生的问题,并且异常的名称容易理解。 异常处理是Java中唯一正式的错误报告机制。 ...

  • JavaSE梳理八:接口

    接口和内部类提供将接口和实现分离的更加结构化的方法。 建立通用接口的唯一理由:不同的子类可以用不同的方法表示此...

  • JavaSE梳理十五:文件

    【462】 1,File 路径的分隔符在不同的系统中的体现: Windows:目录的分隔符:“\”,反斜杠。所以在...

  • JavaSE基础知识学习-----多态

    多态 Java面向对象编程有三大特性:封装,继承和多态封装隐藏类的内部具体实现机制,保护数据,对外界隐藏内部细节,...

  • JavaSE总结(2)继承、多态、接口

    一、继承: (1)当我们要定义一个类时,发现已经有一个相似的类,或者是已有类的一种时,那么我们就将这个类定义为已有...

  • JavaSE梳理十:持有对象

    Java有多种方式保存对象,确切的说是对象的引用。譬如数组是保存一组对象的最有效的方式,但是数组有固定的尺寸,不适...

网友评论

      本文标题:JavaSE梳理七:多态

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