zoukankan      html  css  js  c++  java
  • Java基础学习之(8)--多态和抽象类

    一、动态绑定(迟绑定)

    动态绑定:使用父类引用指向子类对象,可以带来比较不错的可扩展性,在方法的参数里面定义父类的引用,在对方法的使用过程中传子类的引用,并在执行期间(非编译期)在方法中判断该引用属于哪个子类,并根据其实际的类型调用其相应的方法。

    动态绑定的内存图:

     

     根据方法的实际参数中的对象类型来进行接下来的操作。

    二、多态

    多态的存在的三个必要条件:继承、重写、父类引用指向子类对象。

    当调用父类中被重写的方法时,实际new的是哪个子类对象,就调用哪个子类对象中的方法。

    三、抽象类

     当一个子类继承一个抽象父类,父类中的抽象方法无法重写,则将该抽象方法复制到子类中,并将该子类声明为抽象类。或者对于不想实现的抽象方法,不copy抽象方法,直接将该类变成抽象类也行。

    抽象类无法进行实例化,只能用来被继承;抽象方法必须被重写。

    abstract总结:

      1、抽象类不能被实例化,实例化的工作应该交由它的子类来完成,它只需要有一个引用即可。

      2、抽象方法必须由子类来进行重写。

      3、只要包含一个抽象方法的类,该类必须要定义成抽象类,不管是否还包含有其他方法。

      4、抽象类中可以包含具体的方法,当然也可以不包含抽象方法。

      5、abstract不能与final并列修饰同一个类。

      6、abstract 不能与private、static、final或native并列修饰同一个方法。

    四、final关键字

    final关键字--只读的。 

     

     public void m(final int j){

    //j = 9; error   当传进来是一个final定义的变量,则该变量在方法中的值不能被改变

    }

    博客引用马士兵Java基础教程中的PPT,如有侵权,请联系删除,谢谢!

  • 相关阅读:
    有趣的linux指令
    Linux——文件打包与压缩
    linux点滴记录
    不归零法编码、曼彻斯特编码和差分曼彻斯特编码
    MySQL点滴记录
    hdu 1200 To and Fro(简单模拟或DP)
    hdu 1081 To The Max(dp+化二维为一维)
    抓起根本(二)(hdu 4554 叛逆的小明 hdu 1002 A + B Problem II,数字的转化(反转),大数的加法......)
    抓其根本(一)(hdu2710 Max Factor 素数 最大公约数 最小公倍数.....)
    hdu 1159 Common Subsequence(最长公共子序列 DP)
  • 原文地址:https://www.cnblogs.com/Harriett-Lin/p/12638352.html
Copyright © 2011-2022 走看看