您的位置:首页 > 编程语言 > Java开发

jdk1.8版本以上出现的新特性

2018-01-15 22:57 483 查看
jdk1.8版本以上出现的新特性

1.接口可以声明

1.抽象方法
2.静态方法
3.默认方法


2.抽象类和接口的区别

1.成员变量
接口:只能是常量
抽象类:可以是变量也可以是常量
2.成员方法
接口;只能是抽象方法静态方法 和 默认方法
抽象类:可以是抽象方法 也可以是普通方法
3.构造方法:
接口:有构造方法 可以是被继承
抽象类:没有构造方法 只能被实现
4.抽象类和接口都不能实现实例化对象


3.测试代码

public class DemopPractice {
public static void main(String[] args) {
InterX.staticF();
接口中静态变量的调用
System.out.println("-----------");
创建一个接口的实现类的对象
InterX x = new InterXImp();
x.defaultFun();
System.out.println("-----------");
x.piblic();
System.out.println("-----------");
调用接口中的静态方法
InterXImp.staticfun();
System.out.println("-----------");
调用实现类中的 特有方法
InterXImp c = (InterXImp)x;
调用实现类中的静态方法
x.defaultFun();
}

}
interface  InterX{
public abstract void piblic();
public static void staticF() {
System.out.println("我是InterX接口里的静态方法 tsaticf()");
}
public default void defaultFun(){
System.out.println("我是接口中的默认方法defultFun()");
}
}
class InterXImp implements InterX{
@Override
public void piblic() {
System.out.println("我是实现类的抽象方法 重写所得");
}
@Override
public void defaultFun() {
System.out.println("我是实现类的默方法 重写所得");
InterX.super.defaultFun();
}
public void fun() {
System.out.println("我是实现类的特有方法 fun()");
}
public static void staticfun() {
System.out.println("我是实现类的静态方法staticfun()");
}
}


运行结果:

我是InterX接口里的静态方法 tsaticf()
-----------
我是实现类的默方法 重写所得
我是接口中的默认方法defultFun()
-----------
我是实现类的抽象方法 重写所得
-----------
我是实现类的静态方法staticfun()
-----------
我是实现类的默方法 重写所得
我是接口中的默认方法defultFun()


5.总结

1.接口中静态变量的调用 可以直接使用接口名调用
2.调用实现类中的 特有方法 需要向下转型
3.实现类中 可以不去重写 实现 接口中静态方法 和 默认方法
4.实现类中调用 接口类中的默认方法 可以使用 接口名.super.方法名();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: