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.方法名();
相关文章推荐
- 更换jdk版本:jdk1.8更换为jdk1.7之后输入java -version还是出现1.8的版本号
- JDK各版本的新特性(jdk1.5~jdk1.8)
- Windows下使用最新的JDK1.7.0_51以上版本连接Jenkins出现SecurityException
- 解决ubuntu上eclipse无法打开,提示jvm版本太旧,至少要jdk1.8以上
- 更换jdk版本:jdk1.8更换为jdk1.7之后输入java -version还是出现1.8的版本号
- jdk各版本特性介绍(根据官网文档介绍)1.5-1.8
- 将jdk版本:jdk1.8更换为jdk1.7之后输入java -version还是出现1.8的版本号
- JDK各个版本的新特性jdk1.5-jdk1.8(一)理论篇
- JDK各个版本的新特性(1.5-1.8)
- java 基础 JDK各个版本的新特性1.5---1.8
- JDK各个版本的新特性 1.5-1.8
- 更换jdk版本:jdk1.8更换为jdk1.7之后输入java -version还是出现1.8的版本号
- 将jdk版本:jdk1.8更换为jdk1.7之后输入java -version还是出现1.8的版本号
- 怎么更改maven工程jdk版本(默为1.5,怎么更改jdk版本为1.8)
- 为什么在VS2010中编写.net 2.0程序可以调用C#2.0以上版本特性?
- JQuery 1.3.2以上版本中出现pareseerror错误的一种情况及处理方法
- 各版本JDK新特性
- Java 理论与实践: 在 JDK 早期版本中使用 Java 5 的语言特性
- 在PHP5.3以上版本运行ecshop和ecmall出现的问题及解决方案
- jdk1.8的新特性