• JDK1.8 —— 接口定义增强


    使用default和static定义接口方法

    JDK1.8(jre8)以后,接口中不在仅仅只允许定义抽象方法,开始允许定义普通方法了;而普通方法需要用default声明。

    interface IMessage {
        public void print(); // 一个接口定义的抽象方法
        default void fun() {// 接口中定义的普通方法
            //
            System.out.println("Hello,World!") ;
        }
    }
    class MessageImpl implements IMessage {
        public void print() {
            System.out.println("Hello,World!") ;
        }
    }
    public class TestDemo {
        public static void main(String [] args) {
            IMessage msg = new MessageImpl() ;
            msg.fun() ;// 直接调用在接口类中定义的方法
        }
    }

    上例代码中,使用defautl定义方法,defautl定义的方法是接口中的普通方法,可以被外部类通过接口类直接调用使用该普通方法。

    interface IMessage {
        public void print(); // 一个接口定义的抽象方法
        default void fun() {// 接口中定义的普通方法
            //
            System.out.println("Hello,World!") ;
        }
        static void get() {
            System.out.println("Hello,Woeld!") ;
        }
    }
    class MessageImpl implements IMessage {
        public void print() {
            System.out.println("Hello,World!") ;
        }
    }
    public class TestDemo {
        public static void main(String [] args) {
            IMessage msg = new MessageImpl() ;
            msg.fun() ;// 直接调用在接口类中定义的方法
        }
    }

    上例代码使用static方法定义,由此可以直接通过类调用方法,则不在实例化接口则可以调用。

    ~~~~~~~~

     ###

    总结:

       接口中default或static方法定义是为了避免子类重复的实现同样的代码

      接口的使用还应以使用抽象方法为主

  • 相关阅读:
    MongoDB ODM
    MongoDb python连接
    json格式化
    IDEA使用
    centos7安装完mariadb设置初始密码
    linux虚机联网
    问题解决记录【612-714】
    资料积累
    技术名词理解
    eclipse
  • 原文地址:https://www.cnblogs.com/wangyuyang1016/p/10924573.html
Copyright © 2020-2023  润新知