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方法定义是为了避免子类重复的实现同样的代码

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

  • 相关阅读:
    input只允许输入正整数
    CSS如何作小于1PX的边
    时间戳的处理
    图片转base64上传,视频同理。
    APIcloud微信支付和支付宝支付(方案2,主要在后台进行)
    H5滑条(input type=range)
    checkbox/radio 样式修改
    APIcloud制作APP 微信支付与支付宝支付
    JS获取鼠标左(右)滑事件
    DOM(Document object madle) 文档对象模型: 元素节点 文本节点 属性节点
  • 原文地址:https://www.cnblogs.com/wangyuyang1016/p/10924573.html
Copyright © 2011-2022 走看看