zoukankan      html  css  js  c++  java
  • Java 8新特性-2 接口定义增强

    为了解决当原有的接口中方法不足时,向原有的接口中添加新的方法,该接口下的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();
    人生如棋,我愿为为卒;行走虽慢,可曾见我后退一步!
  • 相关阅读:
    ios学习- 10大iOS开发者最喜爱的类库
    Android开发之组件
    2015最新iOS学习线路图
    2015最新Android学习线路图
    2015最全iOS开发自学视频资料(基础+实战)
    linux服务器常用密令
    windows服务器入门 使用FileZilla搭建FTP服务
    windows服务器入门 php的安装
    hdu 1106
    hdu 1040 As Easy As A+B
  • 原文地址:https://www.cnblogs.com/MPPC/p/5354254.html
Copyright © 2011-2022 走看看