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

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

  • 相关阅读:
    英语cabardine麝香cabardine单词
    英语dialogite红纹石dialogite菱锰矿
    英语chiltonite葡萄石chiltonite单词
    英语chrysopal金绿宝石chrysopal单词
    Android系统默认对话框添加图片
    入门rocketmq从浅到深
    通用mapper认识和用法
    java开发注解大全
    solr的认识、linux下安装、java下使用(含下载资源)
    RSA签名和验签Util
  • 原文地址:https://www.cnblogs.com/wangyuyang1016/p/10924573.html
Copyright © 2011-2022 走看看