JAVA的接口

接口基础知识

为什么需要接口

需求:要求实现防盗门的功能,门有“开”和“关”的功能,锁有“上锁”和“开锁”功能。
分析:首先防盗门是一个门,它有一把锁。按照之前学过的面向对象的思想,可以将门和锁分别定义成抽象类。但是,不能让防盗门在继承们的同时又继承锁。原因有两点:第一,防盗门不是锁,不符合继承中is a的关系,第二,Java只支持单继承,如何解决这个问题呢?这时就要用到接口,可以将锁定义为接口,让防盗门继承门,实现锁的接口。那么什么是借口呢?它的特点又是什么呢?下面让我们来学习一下。

什么是接口

在生活中,接口是一套规范,只要满足这个规范的设备,就可以将它们组装到一起,从而实现该设备的功能。
而在软件中,接口同样是一种规范和标准,它们可以约束类的行为,是一些方法特征的集合,但是没有方法的实现,从这个角度来讲,接口可以看作一种特殊的“抽象类”,但是采用与抽象类完全不同的语法来表示,两者的设计理念也是不同的,抽象类利于代码的复用,接口利于代码的扩展和维护。

接口的定义语法和类实现接口的语法
[修饰符] interface 接口名 extends 父接口1,父接口2,…{
//常量定义
//方法定义
}
class 类名 extends 父类名 implements 接口1,接口2,…{
//类成员
}

接口说明
1.接口的命名规范和类相同。
2.接口中可以定义常量,不能定义变量。
3.接口中所有的方法都是抽象方法。
4.和抽象类一样,接口也不能实例化,接口中不能有构造方法。
5.接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类。
6.接口的实现类必须实现接口的全部方法,否则必须定义为抽象类。

下面就使用Java接口来模拟生活中的USB接口

//先定义USB接口,通过service()方法提供服务
/*
 * USB接口
 */
public interface UsbInterFace {
   
	/*
	 * USB接口提供服务
	 */
	void service();
}

//定义U盘类,实现USB接口中的service()方法,进行数据传输
/*
 * U盘
 */
public class UDisk implements UsbInterFace{
   
	public void service(){
   
		System.out.println("连接USB口,开始传输数据");
	}

}

//定义USB风扇类,实现USB接口中的service()方法,获得电流使风扇转动
/*
 * USB风扇
 */
public class UsbFan implements UsbInterFace{
   
	public void service(){
   
		System.out.println("连接USB口,获得电流,风扇开始转动");
	}
}
//编写测试类,实现U盘传输数据,使USB风扇转动
/*
 * 测试类
 */
public class Test {
   

	public static void main(String[] args) {
   
		//1.U盘
		UsbInterFace uDisk=new UDisk();
		uDisk.service();
		//2.USB风扇
		UsbInterFace usbFan=new UsbFan();
		usbFan.service();
	}

}

运行结果:在这里插入图片描述
通过该示例我们学习了如何定义接口和实现接口,这些技能在后面的学习中将会被反复用到。

接口表示一种能力

使用接口实现防盗门功能

通过上面的代码,我们已经了解Java接口的语法和规则,现在就使用借口来实现防盗门功能

//定义Door类,具有开和关的功能
/*
 * 门
 */
public abstract class Door {
   
	public abstract void open();//开
	public abstract void close();//关
}

//定义Lock接口,具备上锁和开锁的功能
/*
 * 锁,接口
 */
public interface Lock {
   
	void lockUp();//上锁
	void openLock();//开锁
}

//定义TheftproofDoor类,继承Door类,实现Lock接口
*
 * 防盗门类
 */
public class TheftproofDoor extends Door implements Lock
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值