zoukankan      html  css  js  c++  java
  • java中interface中的方法为什么不能是static方法?

    先看一段代码:

    public class SuperClass {
     static void go(){
      System.out.println("superclass");
     }
    }

    public class SubClass extends SuperClass{

     static void go(){
      System.out.println("subclass");
     }
     public static void main(String[] args){
      SubClass.go();
     }
    }

    根据输出结果看不出什么。

    现在改变一下main方法

      SuperClass superClass = new SubClass();
      superClass.go();                                     //java中不建议这么些  直接用类调用  这里要演示一下多态

    这时候发先调用的是SuperClass中的go().失去了多态性,所以在interface中没有意义。

    虽然c++只是略微看了一点点,但是也是可以去联想一下c++中的virtual关键字,声明了

    virtual的方法才会在继承方向表现出多态性质,没有声明为virtual的看起来就很像java中

    的static方法。

                                             

    原创文章作者保留版权 转载请注明原作者 并给出链接

  • 相关阅读:
    【简】题解 AWSL090429 【市场】
    【简】题解 AWSL090429 【噪音】
    差分约束
    凸包模板
    杂模板
    后缀数组刷题
    Trie刷题
    字符串模板
    网络流建模专题
    组合数模板
  • 原文地址:https://www.cnblogs.com/wendao/p/2609152.html
Copyright © 2011-2022 走看看