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

  • 相关阅读:
    Java实现各种内部排序算法
    Java实现堆排序(大根堆)
    Java对象的序列化和反序列化
    Java实现链式存储的二叉查找树(递归方法)
    337. House Robber III(包含I和II)
    318. Maximum Product of Word Lengths
    114. Flatten Binary Tree to Linked List
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    96. Unique Binary Search Trees(I 和 II)
  • 原文地址:https://www.cnblogs.com/Harriett-Lin/p/12638352.html
Copyright © 2011-2022 走看看