• java8接口新特性


    在接口中可以添加具体的方法

    1.静态方法

    实现该接口时,不论是抽象类还是普通类,都不允许重写改方法,在普通方法中的调用方式需要使用接口名.方法名

    2.default方法

    静态方法和default方法定义:

    package intership.interfacetest;
    
    /**
     * @Author: yf.zuo
     * @Date: 13:13 2018/8/20
     */
    public interface InterfaceA {
        static void staticTest(){
            System.out.println("staticA");
        }
        default void test(){
            System.out.println("A");
        }
        void testA();
    }

     普通类实现该接口时,可以直接定义对象调用该接口的default方法,也可以重写(注释掉的部分),对于接口中没有方法体的函数,普通类在实现该接口时必须重写该方法(testA())

    package intership.interfacetest;
    
    /**
     * @Author: yf.zuo
     * @Date: 13:16 2018/8/20
     */
    public class InterfaceTest implements InterfaceA{
    //    @Override
    //    public void test(){
    //        System.out.println("InterfaceTest");
    //    }
    
        @Override
        public void testA() {
    
        }
    
    
        public static void main(String args[]){
            new InterfaceTest().test();
            InterfaceA.staticTest();
            InterfaceB.staticTest();
        }
    }

    如果该普通类实现了两个接口,而这两个接口中又存在同名同参数的default方法,则该普通类必须重写这个方法,抽象类也需要重写,因为在调用的时候不知道调用哪个接口中的default方法。

    package intership.interfacetest;
    
    /**
     * @Author: yf.zuo
     * @Date: 13:15 2018/8/20
     */
    public interface InterfaceB{
        static  void staticTest(){
            System.out.println("staticB");
        }
        default  void test(){
            System.out.println("B");
        }
    }
    package intership.interfacetest;
    
    /**
     * @Author: yf.zuo
     * @Date: 13:16 2018/8/20
     */
    public class InterfaceTest  implements InterfaceA , InterfaceB{
        @Override
        public void test(){
            System.out.println("InterfaceTest");
        }
    
        @Override
        public void testA() {
    
        }
    
    
        public static void main(String args[]){
            new InterfaceTest().test();
            InterfaceA.staticTest();
            InterfaceB.staticTest();
        }
    }
  • 相关阅读:
    关于在VS2008和VS2010中禁用及卸载Visual Assist X的方法研究——转载
    泛型
    100个常用的Linux命令——转载
    BZOJ1501 (NOI2005 智慧珠游戏)
    Vijos1615 旅行
    Vijos1617 超级教主
    POJ2689 HDU2824 筛法、欧拉函数
    (SPOJ687,后缀数组)
    POJ1743 (Musical Theme,后缀数组)
    POJ2774 Long Long Message
  • 原文地址:https://www.cnblogs.com/fay0926/p/9635746.html
Copyright © 2020-2023  润新知