接口练习题(同名静态方法、同名默认方法、同名抽象方法实现接口后的方法调用及重写)

interface Info1{
    //同名的静态方法
    static void sf() {System.out.println("info1");}
    //同名的默认方法:实现类重写
    default void df() {System.out.println("info1_df");}
    //同名的抽象方法
    void af();//public abstract void af()
}
interface Info2{
    static void sf() {System.out.println("info2");}
    default void df() {System.out.println("info2_df");}
    void af();
}
class InfoImpl1 implements Info1,Info2{
    //匿名内部类的写法:实现abstract的分开重写
    Info1 info1 = new Info1() {
        @Override
        public void af() {
            System.out.println("重写实现的是info1中的af");
        }    
    };
    Info2 info2 = new Info2() {
        @Override
        public void af() {
            System.out.println("重写实现的是info2中的af");
        }    
    };
    //------------------------------------------------------
    @Override
    public void af() {
        //统一重写
    }
    @Override
    public void df() {
        Info1.super.df();
        Info2.super.df();
    }
    public void show() {
        Info1.sf();
        Info2.sf();
    }
    

    
}
public class TestBaseInfo {

    public static void main(String[] args) {
        InfoImpl1 info = new InfoImpl1();
//        info.show();
        info.info1.af();
        info.info2.af();

    }

}

 

posted @ 2019-04-27 22:55  Geek张东坡  阅读(232)  评论(0编辑  收藏  举报