• interface中定义default方法和static方法


    interface的default方法和static方法

    • 接口中可以定义static方法,可通过接口名称.方法名()调用,实现类不能继承static方法;
    • 接口中可以定义default方法,default修饰的方法有方法体,表示这个方法的默认实现,子类可以直接调用,可以选择重写或者不重写;
    • 当实现类实现的多个接口中,有方法签名相同的default方法时,必须重写该方法;

      接口一:

    package com.skd.interfacemethod;
    
    /**
     * @Description
     * @Author virgosnail
     * @Date 2018/12/12
     */
    
    public interface Human {
    
        /**
         * 必须被重写
         */
        void oldMethod();
    
        /**
         * 实现类可以选择重写,也可以不重写
         */
        default void hi(){
            System.out.println("interface default method");
        }
    
        /**
         * 不能被实现类重写
         */
        static void hello(){
            System.out.println("interface static method");
        }
    }

      接口二:

    package com.skd.interfacemethod;
    
    /**
     * @Description
     * @Author virgosnail
     * @Date 2018/12/12 20:59
     */
    
    public interface Humen {
    
        default void hi(String aa){
            System.out.println("interface default method");
        }
    }

      实现类:

    package com.skd.interfacemethod;
    
    /**
     * @Description
     * @Author virgosnail
     * @Date 2018/12/12
     */
    
    public class Person implements Human,Humen {
    
        @Override
        public void oldMethod() {
    
        }
    
        /**
         * 实现的多个接口中有方法签名相同的default 方法时,实现类必须重写该方法
         */
        @Override
        public void hi() {
    
        }
        /**
         * 实现类不能继承接口的static 方法
         */
    }

      测试类:

    package com.skd.interfacemethod;
    
    /**
     * @Description
     * @Author virgosnail
     * @Date 2018/12/12
     */
    
    public class Test {
        public static void main(String[] args) {
            // interface 的 default 方法通过实现类的实例对象调用
            new Person().hi();
            // interface 的 static 方法通过 接口名称.方法名称直接调用
            Human.hello();
    
        }
    }
  • 相关阅读:
    办公自动化12-word批量替换(将替换内容写在excel里)
    办公自动化11-把word里所有的分节符替换为分页符
    办公自动化10-合并多个word文件
    办公自动化9-批量word转pdf
    办公自动化8-单个pdf转txt
    python3安装docx模块出现Import Error: No module named 'exceptions'
    办公自动化7-Rename批量修改文件名称(实现自动编号)
    办公自动化6-OS库基本操作
    线性空间
    二重积分
  • 原文地址:https://www.cnblogs.com/virgosnail/p/10111075.html
Copyright © 2020-2023  润新知