zoukankan      html  css  js  c++  java
  • 自学java 第八章多态

    今天学习了java中的多态。

    多态也称为动态绑定,后期绑定或运行时绑定。

    首先学的向上转型,即将导出类的对象赋值给基类的引用。

    方法调用绑定,包括前期绑定和后期绑定。

    前期绑定,程序执行前绑定,用static或final或private修饰的方法都属于前期绑定。由于前期绑定的方法不能在导出类中被覆盖,因此不能实现多态。

    后期绑定(也叫动态绑定或运行时绑定),运行时根据对象的类型进行绑定,只要不是前期绑定的方法都自动是后期绑定,java中所有方法都是通过动态绑定实现多态的。

    注意:在子类中不要覆盖基类中的private方法,否则在多态运行时出现的结果会出现错误(因为实际调用的还是基类中的private方法);

               static类的方法是与类相关联的,而不是与单个对象相关联,通过多态使用时调用的还是基类中的static方法,因此它不具有多态性。

    派生类的初始化顺序:

    1.其它任何事物发生前,将分配给对象的存储空间初始化为二进制的0;

    2.从最底部的根基类开始初始化static成员,按继承顺序初始到导出类,然后再从根基类开始按声明顺序初始成员变量然后调用构造方法,按继承顺序初始到导出类。

    使用继承进行设计是会用到状态模式,具体的介绍: 链接http://www.cnblogs.com/java-my-life/archive/2012/06/08/2538146.html

    继承表示:“is-a”的关系,组合表示:“has-a”的关系。

    在向下转型中,基类对象不能调用导出类中的扩展方法,否则运行时会报错,而通过多态将基类引用强制转换为导出类型则可以调用导出类的所有方法。

  • 相关阅读:
    IIS是如何处理ASP.NET请求的
    数据库访问性能优化
    通信交互总结
    数据库集群技术漫谈
    VS2010中出现无法嵌入互操作类型
    正则表达式-更新版
    IIS部署SSL证书后提示不可信的解决方案
    CSS水平居中和垂直居中解决方案
    jQuery get/post区别及contentType取值
    配置Tomcat使用https协议
  • 原文地址:https://www.cnblogs.com/grj0011/p/4839023.html
Copyright © 2011-2022 走看看