zoukankan      html  css  js  c++  java
  • 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方法定义是为了避免子类重复的实现同样的代码

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

  • 相关阅读:
    一:Storm集群环境搭建
    八:Zookeeper开源客户端Curator的api测试
    七:zooKeeper开源客户端ZkClient的api测试
    六:ZooKeeper的java客户端api的使用
    Redis(四):常用数据类型和命令
    Spring Cloud分布式微服务系统中利用redssion实现分布式锁
    @Controller和@RestController的区别?
    可伸缩系统架构探讨
    可扩展架构系统的探讨
    @ExceptionHandler异常统一处理
  • 原文地址:https://www.cnblogs.com/wangyuyang1016/p/10924573.html
Copyright © 2011-2022 走看看