Java8接口中默认方法是啥? -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

Java8接口中默认方法是啥?

小天使爱美 2020-04-12 22:48:38 1050

Java8接口中默认方法是啥?

Java
分享到
取消 提交回答
全部回答(2)
  • 星尘linger
    2020-04-12 22:49:24
    已采纳

    "Java 8 还允许我们给接口添加一个非抽象的方法实现,只需要使用 default 关键字即可,这个特征又叫做扩展方法。在实现该接口时,该默认扩展方法在子类上可以直接使用,它的使用方式类似于抽象类中非抽象成员方法。但扩展方法不能够重载 Object 中的方法。例如:toString、equals、 hashCode 不能在接口中被重载。 例如,下面接口中定义了一个默认方法 count(),该方法可以在子类中直接使用。 public interface DefaultFunInterface { //定义默认方法 count default int count(){ return 1; } } public class SubDefaultFunClass implements DefaultFunInterface { public static void main(String[] args){ //实例化一个子类对象,改子类对象可以直接调用父接口中的默认方法 count SubDefaultFunClass sub = new SubDefaultFunClass(); sub.count(); } }"

    0 0
  • 景凌凯
    2020-04-12 22:59:42

    在java8之前,接口中的所有方法都是abstract public的,java8引入了default关键字用来定义接口中的普通的有方法体的方法。所有实现了这个接口的类的实例都能直接执行这个普通方法,类似于继承。

    // A simple program to Test Interface default // methods in java interface TestInterface { // abstract method public void square(int a);

    // default method 
    default void show() 
    { 
    System.out.println("Default Method Executed"); 
    } 
    

    }

    class TestClass implements TestInterface { // implementation of square abstract method public void square(int a) { System.out.println(a*a); }

    public static void main(String args[]) 
    { 
    	TestClass d = new TestClass(); 
    	d.square(4); 
    
    	// default method executed 
    	d.show(); 
    } 
    

    }

    0 0
添加回答
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题