码迷,mamicode.com
首页 > 其他好文 > 详细

JDK1.8 —— 接口定义增强

时间:2019-05-26 00:31:49      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:定义   实现   tde   def   get   void   避免   ESS   bsp   

使用default和static定义接口方法

JDK1.8(jre8)以后,接口中不在仅仅只允许定义抽象方法,开始允许定义普通方法了;而普通方法需要用default声明。

interface IMessage {
    public void print(); // 一个接口定义的抽象方法
    default void fun() {// 接口中定义的普通方法
        //
        System.out.println("Hello,World!") ;
    }
}
class MessageImpl implements IMessage {
    public void print() {
        System.out.println("Hello,World!") ;
    }
}
public class TestDemo {
    public static void main(String [] args) {
        IMessage msg = new MessageImpl() ;
        msg.fun() ;// 直接调用在接口类中定义的方法
    }
}

 

上例代码中,使用defautl定义方法,defautl定义的方法是接口中的普通方法,可以被外部类通过接口类直接调用使用该普通方法。

interface IMessage {
    public void print(); // 一个接口定义的抽象方法
    default void fun() {// 接口中定义的普通方法
        //
        System.out.println("Hello,World!") ;
    }
    static void get() {
        System.out.println("Hello,Woeld!") ;
    }
}
class MessageImpl implements IMessage {
    public void print() {
        System.out.println("Hello,World!") ;
    }
}
public class TestDemo {
    public static void main(String [] args) {
        IMessage msg = new MessageImpl() ;
        msg.fun() ;// 直接调用在接口类中定义的方法
    }
}

 

上例代码使用static方法定义,由此可以直接通过类调用方法,则不在实例化接口则可以调用。

~~~~~~~~

 

 ###

总结:

   接口中default或static方法定义是为了避免子类重复的实现同样的代码

  接口的使用还应以使用抽象方法为主

 

JDK1.8 —— 接口定义增强

标签:定义   实现   tde   def   get   void   避免   ESS   bsp   

原文地址:https://www.cnblogs.com/wangyuyang1016/p/10924573.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!