接口

接口:更纯粹的抽象类

1.接口使用interface声明。

2.接口不能直接实例化(创建)对象。

3.接口中的成员变量默认是常量,定义时就要初始化,用public static final修饰的。

4.接口中的方法都是抽象方法。

5.接口和方法都不能用final修饰。

实现:

使用implements关键字来实现某接口。

一个类如果实现了某个接口,则必须实现该接口中的所有的抽象方法。除非该类是抽象类。

接口之间可以相互继承。接口可以多继承,因为接口中的方法没有方法体。

一个类可以实现多个接口,用逗号隔开。接口中的常量会出现菱形继承的问题,所以常量使用类名/接口名直接调用。

一个类实现了多个接口,而每个接口中都有相同名字的常量,这个时候用对象调用常量会出现歧义。

1.8新特性:

接口中可以有默认的非抽象方法。

a)default void method(){}

b)接口中的默认方法可以直接被实现类继承

c)接口中可以有多个默认方法。

d)接口中的默认方法可以被子类接口继承。

e)当一个类实现多个接口,而多个接口声明了相同的默认方法时,实现类必须重写其中一个接口的默认方法。

f)在子类接口重写的方法中,要调用父接口中被覆盖的方法时,需要使用父接口名.super.方法名();

//A,H接口中觉有 m 默认方法,B必须重写 m
public interface B extends A,H{
	default void m{
		System.out.println("interface b default method");
	    A.super.m();
	    H.super.m();
	}
}

参考

提高篇—抽象类和接口的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值