黑马程序员技术交流社区

标题: JDK8新特性,接口方面的测试。 [打印本页]

作者: 阿卜    时间: 2016-8-21 18:26
标题: JDK8新特性,接口方面的测试。
JDK8的新特性
* 接口中可以定义有方法体的方法,如果是非静态,必须用default修饰       
* 如果是静态的就不用了

以下是测试代码,测试结论已标注于注释

public class JDK8Test1 {

        public static void main(String[] args) {
                Demo d = new Demo();        //Demo extends FatherT implements InterT
                d.print1();                                //输出"father print1".结论:同时继承类和实现接口,父类和父接口(default方法)有同名方法时,继承父类的方法
                d.print2();                                //输出"father print2".结论:同时继承类和实现接口,父类(非抽象)和父接口(无方法体)有同名方法时,不用再重写此方法,默认使用父类方法
                InterT.print();                        //输出"InterT static".结论:可以直接接口名.方法名调用接口中的static方法
                new InterT() {                        //匿名内部内需要重写借口中的无方法体方法
                        public void print2() {
                                System.out.println("new InterT print2()");
                        }
                }.print1();                                //输出"InterT default".结论:匿名内部类可以直接调用default修饰的有方法体方法
                Demo2 d2 = new Demo2();        //Demo2 implements InterT
                d2.print1();                        //输出"InterT default".结论:继承父接口中的default方法
        }

}

interface InterT {
        int i = 10;                        //接口中的属性默认静态常量
        public static void print() {        //接口中可以定义static的有方法体的方法
                System.out.println("InterT static");
        }
       
        public default void print1() {        //接口中可以定义非静态的,用default修饰的有方法体的方法
                System.out.println("InterT defaut");
        }
       
        public void print2();
}

class FatherT {
        public void print1() {
                System.out.println("father print1");
        }
        public void print2() {
                System.out.println("father print2");
        }
}

class Demo extends FatherT implements InterT {
        //并没有重写InterT中的print2()方法
}

class Demo2 implements InterT {
        //必须重写InterT中无方法体的print2()方法
        public void print2() {
                System.out.println(i);
        }
}
作者: 卡卡奇    时间: 2016-8-21 18:54
大牛啊,赞一个




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2