• java 8 接口定义静态方法和default方法


    import java.lang.reflect.Method;  
      
      
    /** 
     * JavaSE 8新特性:<span style="background-color: rgb(255, 255, 0);">1.接口可以定义非抽象方法</span>  但必须使用default或者staic关键字来修饰  
     */  
    public class DefaultMethod {  
      
      
    public interface Chinese {  
      
    //小结:<span style="background-color: rgb(255, 255, 0);">2.JDK1.8规定只能在接口定义defult方法  且必须加Body实现</span>  
    default String speak() {  
    return "会说普通话!";  
    }  
    //小结:<span style="background-color: rgb(255, 255, 0);">3.接口的默认实现方法支持重载</span>  
    default String speak(String language) {  
    return "会说"+language;  
    }  
      
    //小结:<span style="background-color: rgb(255, 255, 0);">4.接口可以定义static方法</span>  
    static void hehe() {  
    System.out.println("我不告诉你");  
    }  
      
    }  
      
    //小结:<span style="background-color: rgb(255, 255, 0);">4.接口的default方法可以被子接口重写成default方法</span>  
    public interface GuangDong extends Chinese{  
    @Override  
    public default String speak() {  
    return "粤语";  
    }  
    }  
    //小结:<span style="background-color: rgb(255, 255, 0);">5.接口的默认方法还可以被子接口重写成抽象方法!!</span>  
    public interface Mayun extends Chinese{  
    @Override  
    public String speak();  
    }  
      
      
    public static void main(String[] args) throws Exception{  
            //小结:6.如果实现类没有重写接口的默认方法,则该类直接调用接口的默认实现方法  
    System.out.println(new Chinese(){}.speak());  
    System.out.println(new Chinese(){}.speak("粤语"));  
    //小结:7.接口的default方法可以被子类重写成普通方法  
    System.out.println(new Chinese(){public String speak() {return "会说鸟语";}}.speak());  
      
    //小结:<span style="background-color: rgb(255, 255, 0);">JDK1.8甚至允许直接调用接口的静态方法</span>  
    Chinese.hehe();  
      
    //小结:<span style="background-color: rgb(255, 255, 0);">JDK1.8 可以通过反射来 判断接口的某个方法是否为default方法</span>  
            Method m =Chinese.class.getMethod("speak");  
            System.out.println("It is "+m.isDefault()+" that "+m.getName()+" is default method");  
      
      
    }  
    }  
    

      

  • 相关阅读:
    IOS提交审核 错误Missing Push Notification Entitlement
    IOS提交审核 Missing Info.plist key问题
    【转载】cocos2dx 3.x 声音播放、音量调节
    【乐畅】工作积累 ---- 后台倒计时 ( 体力恢复功能 )
    【乐畅】工作积累 ---- 时间获取各个方法
    【乐畅】工作积累 ---- 设置一个弹窗的层
    【转载】【cocos2dx】特效收集
    【转载】cocos2dx 3.1获取系统当前时间
    【转载】cocos2d-x类型转换(CCstring int string char UTF-8互转)以及字符串详解
    【转载】Cocos2dx 小技巧(十四)ScrollView实现缩放效果
  • 原文地址:https://www.cnblogs.com/tooy/p/8033466.html
Copyright © 2020-2023  润新知