开发者社区> 问答> 正文

Java8接口中默认方法是啥?

已解决

Java8接口中默认方法是啥?

展开
收起
小天使爱美 2020-04-12 22:48:38 6028 0
2 条回答
写回答
取消 提交回答
  • 采纳回答

    "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(); } }"

    2020-04-12 22:49:24
    赞同 展开评论 打赏
  • 有点尴尬唉 你要寻找的东西已经被吃掉啦!

    在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(); 
    } 
    

    }

    2020-04-12 22:59:42
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载