Abstract methods do not specify a body-抽象方法不指定主体
接口(英文:Interface),在 Java 编程语言中是一个抽象类型,是抽象方法的集合。一个类通过继承接口的方式,从而来继承接口的抽象方法。
接口是比抽象类更抽象的“类”,与抽象类不同的是
1、接口有方法体但只是声明,没有具体的功能,每个类实现接口之后都要实现所有的方法
2、 接口中的成员变量只能是 public static final
类型;
3、 接口中不能含有静态代码块以及静态方法(static);
所以如果接口实现了方法体的功能
package Polymorphic;
public interface Mortal {
public void attack();
//其实反编译后是public abstract void attack();
public void die(){
System.out.println("Hero is killed by another hero");
}
}
就会产生如下错误
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kfxXyHHc-1603076414575)(C:\Users\86173\AppData\Roaming\Typora\typora-user-images\1603075982167.png)]
但是如果要实现具体方法体就要使用default;Default 方法,不破坏现有的实现架构,实现接口的非抽象方法;
package Polymorphic;
public interface Mortal {
public void attack();
default public void die(){
System.out.println("Hero is killed by another hero");
}
}
jdk1.8之后的版本才可以实现default方法