• 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,如有侵权,请联系删除,谢谢!

  • 相关阅读:
    逻辑分支中if小括号中的隐式转换
    逻辑运算符
    CSS——元素的显示与隐藏
    JS对象
    JS预解析与变量提升
    JS作用域
    JS函数
    CSS定位(position)
    JS数组
    JS分支结构与循环结构
  • 原文地址:https://www.cnblogs.com/Harriett-Lin/p/12638352.html
Copyright © 2020-2023  润新知