java的default关键字

本文介绍了Java 8中引入的default关键字,允许接口定义默认方法实现。通过示例展示了接口实现类如何选择性地覆盖或继承这些默认方法。同时,也探讨了接口中的静态方法,指出它们不能被实现类覆盖且必须有实现体。
摘要由CSDN通过智能技术生成

default关键字:在jdk8中引入,使接口也能定义方法实现,用了default之后,就必须定义实现

public interface TestDefault {

      default void testDefault(){
          System.out.print("hello ");
      }

      void normal();


      class TestDefaultImpl implements TestDefault{

         @Override
         public void normal() {
             System.out.print("word");
         }
      }


     static void main(String[] args) {
        TestDefault testDefault=new TestDefaultImpl();
        testDefault.testDefault();
        testDefault.normal();
     }
}

输出:
hello word

当接口实现类重新实现之后,会覆盖接口中的实现:

public interface TestDefault {

    default void testDefault() {
        System.out.print("hello ");
    }

    void normal();


    class TestDefaultImpl implements TestDefault {

        @Override
        public void testDefault() {
            System.out.print("bye ");
        }

        @Override
        public void normal() {
            System.out.print("word");
        }
    }

    static void main(String[] args) {
        TestDefault testDefault = new TestDefaultImpl();
        testDefault.testDefault();
        testDefault.normal();
    }
}


输出:
bye word

 此外,static关键字,也可以在接口中定义静态方法的实现,接口的静态方法不能被接口实现类实现,静态方法在接口中必须有实现体(一般没必要这样做):

public interface TestDefault {

    static void testDefault() {
        System.out.print("hello ");
    }

    static void main(String[] args) {
        TestDefault.testDefault();
    }
}

输出:
hello 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值