Abstract methods do not specify a body-抽象方法不指定主体

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方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值