zoukankan      html  css  js  c++  java
  • 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();
        }
    }
  • 相关阅读:
    85个国外Ajax例子
    如何捕获方向键
    C#版对对碰[强荐]
    如何关闭移动盘的自动播放
    常用算法大全-回溯算法
    string转换成color
    常用算法大全-分而治之算法
    常用算法大全-分枝定界
    C#游戏——极品蜜蜂V1.0
    WebService传多个参数和返回多个参数的方法
  • 原文地址:https://www.cnblogs.com/fay0926/p/9635746.html
Copyright © 2011-2022 走看看