程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Java 8新特性-接口定義增強,新特性接口定義

Java 8新特性-接口定義增強,新特性接口定義

編輯:JAVA綜合教程

Java 8新特性-接口定義增強,新特性接口定義


為了解決當原有的接口中方法不足時,向原有的接口中添加新的方法,該接口下的N多實現類也需要重寫該方法的問題!Java8引入了接口定義增強概念!

Java8 打破了原有的接口的方法定義: 公共的、抽象的 

  • 默認方法
    • Java 8 還允許我們給接口添加一個非抽象的方法實現,只需要使用 default 關鍵字即可,這個特征又叫做擴展方法。
    • 在實現該接口時,該默認擴展方法在子類上可以直接使用,它的使用方式類似於抽象類中非抽象成員方法。
    • 但擴展方法不能夠重載 Object 中的方法。例如:toString、equals、 hashCode 不能在接口中被重載。
    • 例如:
    • interface  IMassage{
      
          public abstract void print(); //這是接口裡面原有的定義
      
          public default void fun(){   //在接口裡面定義普通的方法
      
              System.out.println("采用 default 關鍵字來在接口中定義普通方法!");
          }
      
      }
      
      class MessageImpl implements  IMassage{
      
          @Override
          public void print() {
              System.out.println("接口的實現類!");
          }
      }   
    • Test:
      public class NewInterface {
      
          public static void main(String[] args) {
              IMassage massage = new MessageImpl();
              //普通的方法實現調用
              massage.print();
              //調用在接口中的普通方法
              massage.fun();
      
          }
      }
    •   結果:
  • 靜態方法
    • 另外一種就是在接口中定義靜態方法,采用 static 關鍵字
    • 例如:
      interface  IMassage{
      
          public static void  funStatic(){
              System.out.println("采用 static 關鍵字來在接口中定義靜態方法");
          }
      
      }

       

    • 調用的方式跟一般的靜態方法調用相同
    •    //調用在接口中定義的static 方法
         IMassage.funStatic();

       

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved