• Java中接口的新特性,为接口添加静态方法和默认方法


     关于接口的新特性,可以为接口添加静态方法和默认方法

    /**
     * 在Jdk8中关于接口的新特性,可以为接口添加静态方法和默认方法
     */
    public class interfaceTest2 {
        public static void main(String[] args) {
    Subclass s
    = new Subclass();
    //知识点1:接口中定义的【静态方法】只能通过接口来调用 //s.method1();//无法调用 CompareA.method1();//可以调用 //知识点2:通过实现类的对象,可以调用接口中的默认方法 //如果实现类重写了接口中的默认方法,调用时,执行的是重新后的方法 s.method2();

    //知识点3:如果子类(实现类)继承的父类,和实现的接口中声明了同名同参数的方法, //那么,子类在没有重写次方法情况下,默认调用的是父类中的同名同参数方法--->类优先原则 s.method3();

    //知识点4:如果实现类实现了多个接口,而这多个接口中定义了同名同参数的默认方法, //那么在实现类没有重写次方法的情况下,报错-------->接口冲突 //这就需要我们在实现类中重写此方法,重写后自然调用的是实现类重写后的方法 } } interface CompareA { //静态方法 public static void method1(){ System.out.println("CompareA: 北京"); } //默认方法 public default void method2(){ System.out.println("CompareA: 上海"); } default void method3(){ System.out.println("CompareA: 杭州"); } } class Subclass extends Superclass implements CompareA{ @Override public void method2(){ System.out.println("Subclass: 上海"); } } class Superclass { public void method3(){ System.out.println("Superclass:杭州"); } }

    接口新特性的应用

    public class InterfaceTest3 {
        public static void main(String[] args) {
            Man man = new Man();
            man.help();
        }
    }
    interface Filial { //孝顺的
        default void help(){
            System.out.println("老妈。我来救你了");
        }
    }
    
    interface Spoony { //痴情的
        default void help(){
            System.out.println("媳妇。我来救你了");
        }
    }
    class Father{
        public  void help(){
            System.out.println("儿子。救我媳妇");
        }
    }
    class Man extends Father implements Filial,Spoony{
        @Override
        public void help() {
            System.out.println("我该救谁呢");
            super.help();
            //调用接口中声明的同名同参数的方法
            Spoony.super.help();
            Filial.super.help();  
        }
    }
  • 相关阅读:
    Java对象序列化/反序列化的注意事项
    初尝Java序列化/反序列化对象
    Java的byte数组
    在C#或者SWT上跨进程访问SWT控件的问题
    Enum实现单例模式
    看个泛型的例子
    构造器优化需要多个构造器的类(建造者模式)
    线程间操作无效: 从不是创建控件的线程访问它.
    SWT中的多线程(Invalid thread access)
    读书笔记 --腾讯传
  • 原文地址:https://www.cnblogs.com/king2/p/14613388.html
Copyright © 2020-2023  润新知