java 接口

1、什么是接口

        接口是一种特殊的类型,通常只包含抽象方法(也可以具备普通方法),表示一种能力,常常用于扩展类的行为

2、为什么需要接口

        以门和锁为例

        门这个类所具备的能力是开和关,而处于安全性的考虑,我们常常为门增添锁的能力。而锁是独立于门的一个类,我们需要一种方法把门和锁联系在一起

        对于门和锁而言,门是主体,锁是附加能力,我们便把锁定义为接口

3、接口和抽象类

        从关系上来看,接口的关系是 has a ,即有一种什么能力,是不同类能力的附加;抽象类则是 is a ,即是一种什么类别,是同一个类的能力增添

        从作用上看,接口是为了类行为的增添,而抽象类是类行为的约束

4、接口使用

        定义时,并不定义为类,而是用 interface 接口(一种特殊类)

public interface Lockable { // 常在类名后加 able 表征接口类
    void lockUp(); 
    void openLock(); // 所有方法都会默认加上public abstract,必须重写

    default void reverseLock(){}; // 其他方法,选择性重写
}

        使用时,用 implements 链接类和接口

public class Door implements Lockable{
	public void lockUp(){
		//省略方法主体的代码
	}
	public void openLock(){
		//省略方法主体的代码
	}
}

5、接口的特点

  • 接口不能被实例化
  • 实现类必须实现接口的所有方法(抽象和普通类都具备,关键在于重写与否)
  • 实现类可以实现多个接口,接口之间用 , 分隔
  • 接口中的变量都是静态常量
  • 支持静态方法,加入关键字 static 即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值