• 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();
    人生如棋,我愿为为卒;行走虽慢,可曾见我后退一步!
  • 相关阅读:
    bzoj 1017 魔兽地图DotR
    poj 1322 chocolate
    bzoj 1045 糖果传递
    poj 3067 japan
    timus 1109 Conference(二分图匹配)
    URAL 1205 By the Underground or by Foot?(SPFA)
    URAL 1242 Werewolf(DFS)
    timus 1033 Labyrinth(BFS)
    URAL 1208 Legendary Teams Contest(DFS)
    URAL 1930 Ivan's Car(BFS)
  • 原文地址:https://www.cnblogs.com/MPPC/p/5354254.html
Copyright © 2020-2023  润新知