• Java学习记录-4.多态


    多态致力于分离做什么和怎么做。意味着一个类型可以同时指代多种类型。

    向上转型

    把某个对象的引用视为对其基类的引用,即是向上转型。

    在方法中把形参定义为基类,应用向上转型,只需一个方法,就可以作用于基类和其所有的导出类。如基类Instrument,子类为Wind,那么将方法定义为tune(Indtrument),tune方法也就适用于Wind类(tune(Wind)),日后如果再定义一个导出类也不用再额外定义或修改tune方法了。

    由于后期绑定的原因,甚至可以把一个导出类的对象引用赋予给一个一个基类引用,在运行时编译器会自动选定使用导出类的方法的。

    在数组中也可以利用向上转型定义一个包含各种子类的基类数组。                                                                                                                                                                                                                         

    向上转型是绝对安全的,因为导出类一定大于等于基类,基类的方法在导出类中一定存在。

    注意,向上转型并不适用于实例域,final方法和static方法,由于private方法是自动final的,切对导出类不可见,故向上转型即便同名也并不会覆盖基类的private方法,极有可能会错误调用到基类方法。

    构造器在导出类的创建过程中是逐级向上调用的,以为只有上一级的构造器才有权限初始化上一级自有的实例域。导出类构造器会默认调用基类的默认构造器,除非用super()指定。

    更纯粹的继承就是基类与导出类的方法完全一样,这种关系是is-a关系,但更灵活的方式是导出类扩展方法,这被称为is-like-a关系,但扩展出来的方法并不能在向上转型后被使用,若要使用,只能向下转型,这将涉及到RTTI。

  • 相关阅读:
    URL域名获取
    SQL Server 索引结构及其使用(二)
    SQL Server 索引结构及其使用(一)[转]
    查询数据库中所有表的数据量、有效数据量以及其它定制数据量
    转:Servlet的url匹配以及url-pattern详解
    转:在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程
    MyEclipse +Servlet 乱码
    MyEclipse +Tomcat 异常操作
    Android Include标签
    转ATL对象类型
  • 原文地址:https://www.cnblogs.com/liuzey/p/8832232.html
Copyright © 2020-2023  润新知