Discuss / Java / 为什么没有覆写default方法还能调用default方法

为什么没有覆写default方法还能调用default方法

Topic source

最后个代码

study_llroad

#2 Created at ... [Delete] [Delete and Lock User]

在接口里定义的default方法是不需要覆写的直接可以调用, 它是可以有方法体,   你看下面那个run方法就不能有方法体;  最后输出就是Tom,this is myname;

interface jiekou1{
      public void run();
      default public void test(){
          System.out.println("this is my name");
      }
}

class lei1 implements jiekou1{
      @Override
      public void run(){
          System.out.print("Tom,");
      }
      
      public static void mani(String[] args){
          lei1 s = new lei1();
          lei1.run();
          lei1.test();
      }
}

所以才说是default(默认值)呀

廖雪峰

#4 Created at ... [Delete] [Delete and Lock User]

你想想如果你自己写JVM:

default方法带方法代码,是完整的方法,不是签名,当然可以直接调用了。

非default方法没有任何代码,想调用也没法调啊,只能等子类复写。

🌙

#5 Created at ... [Delete] [Delete and Lock User]

相当于普通类的方法,直接继承过去了


  • 1

Reply