美文网首页
Java重温-多态06

Java重温-多态06

作者: 46fdc45388ac | 来源:发表于2017-05-18 23:41 被阅读8次

1.多态的作用则是消除类型之间的耦合关系。

2.Java中除了static方法和final方法(private方法属于final方法)之外,其他所有的方法都是后期绑定

绑定的概念是什么呢?等以后阅读虚拟机时,了解了函数的执行模式就知道了。

3.执行顺序:静态变量、静态方法、静态域,然后是构造函数,然后是全局变量和全局域,然后是方法体。构造函数的执行先父类后子类。而函数执行父类方法还是子类方法将由运行时识别的对象类型来决定。

所以如果写回收方法,要回收父类资源。需要使用super.xx的方法。

4.用继承表达行为间的差异,并用字段表达状态上的变化

5.所有转型都会得到检查,即便是强转

第8章 多态

8.1 再论向上转型

可参考下图:

因为方法区中还是持有父类的方法地址,所以能保证找到。但是这种情况又是如何做类型识别的呢?(需要了解虚拟机的实现)

8.1.1 忘记对象类型

8.2 转机

8.2.1 方法调用绑定

Java中除static方法、final方法、private方法,其他方法都是后期绑定。

8.2.2 产生正确的行为

8.2.3 可拓展性

8.2.4 缺陷:“覆盖”私有方法

8.2.5 缺陷:域与静态方法

域访问操作(全局变量初始化可以认为是域操作。全局变量初始化分两个过程,一个是设置为0的过程,另外一个是用域代码初始化的过程)都将由编译器解析,因此不存在多态。

8.3 构造器和太多

8.3.1 构造器的调用顺序

先父类再子类(如果第一行没有手动调用父类构造器,编译器自动添加调用父类的默认构造器。貌似是这个逻辑)

8.3.2 继承与清理

清理可以使用super.xx回收父类资源。放在最后。

8.3.3 构造器内部的多台方法的行为

这里需要理解后期绑定的概念。也可以结合域访问操作不存在多态的概念。

8.4 协变返回类型

貌似还是动态绑定的概念(没理解这里和动态绑定的区别)

8.5 用继承进行设计

8.5.1 纯继承与拓展

8.5.2 向下转型与运行时类别识别。

8.6 总结。

相关文章

  • Java重温-多态06

    1.多态的作用则是消除类型之间的耦合关系。 2.Java中除了static方法和final方法(private方法...

  • java多态面试题

    java多态性 多态分两种: (1) 编译时多态(设计时多态):方法重载。 (2) 运行时多态:JAVA运...

  • java多态面试题

    java多态性 多态分两种: (1) 编译时多态(设计时多态):方法重载。 (2) 运行时多态:JAVA运行时...

  • 2018-01-25

    多态机制 java语言,实现多态...

  • java多态之简述

    Java的第三大特性------>多态 一、什么是多态 多态根据其字面意思就是多种形态的意思,那么在Java中的多...

  • 学习JavaScript设计模式——面向对象(五)

    面向对象(五) 多态 我仔细看了一下,这里说的JavaScript 的多态好像和Java的多态不一样, Java ...

  • Java基础之面向对象

    1.多态,继承,封装 Java实现多态有哪些必要条件?具体怎么实现?多态的实现原理?多态的作用? 答:多态的优点 ...

  • Java 多态

    1、Java 多态分类 1)编译时多态:方法重载。2)运行时多态:JAVA运行时系统根据调用该方法的实例的类型来决...

  • Java 多态之方法调用顺序

    本文例子取于<深入理解java多态性>和,分析 Ja...

  • 详解Java多态

    详解Java多态 多态定义 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态...

网友评论

      本文标题:Java重温-多态06

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