码迷,mamicode.com
首页 > 编程语言 > 详细

Java 8新特性-接口定义增强

时间:2016-04-05 12:12:28      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

为了解决当原有的接口中方法不足时,向原有的接口中添加新的方法,该接口下的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();

       

Java 8新特性-接口定义增强

标签:

原文地址:http://www.cnblogs.com/MPPC/p/5354254.html

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