zoukankan      html  css  js  c++  java
  • J2SE基础:5.面向对象的特性2

    Final的使用



    final在类之前
    表示该类是终于类。表示该类不能再被继承。

    final在方法之前
    表示该方法是终于方法,该方法不能被不论什么派生的子类覆盖。

    final在变量之前
    表示变量的值在初始化之后就不能再改变;相当于定义了一个常量。




    对象的上溯(上转型)和对象的下溯



    上转型对象的特点:
    A a = new B();
    实例化是B,仅仅只是是A去接收而已。

    所以仅仅能看到A中定义的属性与方法。
    A:不能操作子类新增的成员变量和方法;

    B:能够操作子类继承的变量,也可操作子类继承或重写的方法;

    假设子类重写了父类的某个方法后,当对象的上转型对象调用这种方法时一定是调用了这个子类重写的方法。



    使用上转型对象的优缺点:

    缺点:不能操作子类新增的成员变量和方法

    长处:
    A:上转型对象是实现对象多态的前提条件。



    B:以牺牲少部分的功能来换代替码设计的最大幅度的优化。


    类型的下溯:

    假设此时上转型对象想要操作子类新增的方法和属性。能够进行

    对象类型的下溯。

    下溯成功后,就能够看到自已新增的属性与方法。





    类型的上/下溯的注意点:


    操作的对象都是针对子类进行上/下的转换。



    操作的上/下转型对象之间必需要有继承关系。





    重载


    当有參数精确匹配时,调用的是精确匹配的方法。



    假设没有,寻找參数相应的父类类型。(Object,String,StringBuffer)





    重写/上转型对象:一旦用上转型对象的话,方法被子类重写,肯定调用的是

         子类重写的方法。



         

    多态


    1:什么是多态:

    多态就是指父类的某个方法被子类重写时,

    能够各自产生自己的功能行为。



    2:多态的条件

    A:要有继承关系



    B:子类必须对父类的方法进行重写



    C:父类的引用要指向子类(对象的上转型)。


    3:多态的中的父类的引用要指向子类造成了多态的后期绑定。



    前期绑定与后期绑定:


    前期绑定:编译期间就已经确定其类型。



    后期绑定:在执行期间才确定对象类型。

  • 相关阅读:
    python-opencv-绘图函数
    sublime下package control安装无效解决
    关于vue.js中slot的理解
    关于vue.js父子组件数据传递
    oAuth2.0及jwt介绍
    nodejs文件上传组件multer使用
    nodejs设置服务端允许跨域
    添加swagger api文档到node服务
    关于for循环里面异步操作的问题
    nodejs记录2——一行代码实现文件下载
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/7137982.html
Copyright © 2011-2022 走看看