zoukankan      html  css  js  c++  java
  • java中static,final,private方法的继承多态问题

    父类中的final  private方法不能被继承,父类中的static方法可以被继承,但是不能重写,这三者都属于前期绑定,java中除了这三种以及构造方法之外剩下的都是后期绑定(运行是绑定).

    当父类的引用指向子类时,调用静态方法看引用,调用普通方法看对象。

    静态的方法可以被继承,但是不能重写。如果父类中有一个静态的方法,子类也有一个与其方法名,参数类型,参数个数都一样的方法,并且也有static关键字修饰,那么该子类的方法会把原来继承过来的父类的方法隐藏,而不是重写。通俗的讲就是父类的方法和子类的方法是两个没有关系的方法,具体调用哪一个方法是看是哪个对象的引用;这种父子类方法也不在存在多态的性质。

    java不推荐用对象调用static方法,这会使人混淆,请大家注意。

    这也是为什么abstract修饰的method是不可同时是static的原因:

    abstract修饰方法,子类需要重写去实现,主要用于各个子类的实例对象; 
    static修饰方法,则方法不属于某个对象,属于class,可用class名.方法名(),进行调用;

    简单的说abstract实例对象; 
    而static属于类。 
    所以static方法不能是abstract方法。

    java动态绑定以及内部实现机制

     https://wenku.baidu.com/view/32208418650e52ea55189863.html

  • 相关阅读:
    代码阅读:结构与逻辑
    ReactiveCocoa 中 RACSignal 所有变换操作底层实现分析(上)
    大白话讲解Promise(一)
    ReactiveCocoa 中 RACSignal 是如何发送信号的
    The Future Of ReactiveCocoa by Justin Spahr-Summers
    reactive programming
    【转】iOS中流(Stream)的使用
    NSStream 流式思想
    Future模式 总结
    备忘
  • 原文地址:https://www.cnblogs.com/hadoop-dev/p/6958164.html
Copyright © 2011-2022 走看看