接口
接口不可以被实例化
实现类必须实现接口的所有方法
实现类可以实现多个接口
接口中的变量都是静态变量
接口只需要定义方法就行了,具体的实现过程由其他类去处理,接口本身不用理会
使用实例
public interface UsbInterface {
public void service();
}
定义 UsbInterface 接口
public interface PowerInterface {
public void getPower();
}
定义 PowerInterface 接口
public class UDisk implements UsbInterface {
public void service() {
System.out.println("连接USB口,开始传输数据");
}
}
定义 UDisk 类,实现 UsbInterface 接口,使用接口必须实现接口里的所有方法
public class UsbFan implements UsbInterface,PowerInterface {
public void service() {
System.out.println("连接USB口,获得电源,风扇开始转动");
}
public void getPower() {
System.out.println("连接充电口,实现充电");
}
}
定义 UsbFan 类,实现 UsbInterface 和 PowerInterface 两个接口
public class Test {
public static void main(String[] args) {
UsbInterface uDisk = new UDisk();
uDisk.service();
UsbFan usbFan = new UsbFan();
usbFan.service();
usbFan.getPower();
}
}
定义 Test 类, UsbInterface uDisk = new UDisk()
也可以写为 UDisk uDisk = new UDisk()
,运行结果如下:
连接USB口,开始传输数据
连接USB口,获得电源,风扇开始转动
连接充电口,实现充电
接口和继承的混合使用
一个类可以继承其他类的同时实现接口,但必须先继承父类,再实现接口
造一个防盗门,防盗门本身有 ++开++ 和 ++关++ 两种能力,另外防盗门上有锁 ,锁有 ++上锁++ 和 ++开锁++ 的功能。
public abstract class Door {
public abstract void open();
public abstract void close();
}
定义一个门的抽象类 Door ,里面分别是开门和关门的抽象方法 open() 、 close()
public interface Lock {
void lockUp();
void openLock();
}
定义一个锁的接口 Lock ,里面分别是开锁和上锁的方法 lockUp() 、 openLock()
interface 是一个特殊的抽象类,里面的方法默认是抽象方法
public class TheftprooDoor extends Door implements Lock {
@Override
public void lockUp() {
System.out.println("插进钥匙,向左旋转钥匙三圈,锁上了,拔出钥匙");
}
@Override
public void openLock() {
System.out.println("插进钥匙,向右旋转钥匙三圈,锁开了,拔出钥匙");
}
@Override
public void open() {
System.out.println("用力推,门开了");
}
@Override
public void close() {
System.out.println("轻轻拉门,门关上了");
}
}
定义 TheftprooDoor 类, 把门和锁组装起来,注意 先继承再实现 ,到这一步一个防盗门就算做好了
public class DoorTest {
public static void main(String[] args) {
TheftprooDoor tfd = new TheftprooDoor();
tfd.close();
tfd.lockUp();
tfd.openLock();
tfd.open();
}
}
定义 DoorTest 类,来测试一下防盗门能不能使用。结果输出:
轻轻拉门,门关上了
插进钥匙,向左旋转钥匙三圈,锁上了,拔出钥匙
插进钥匙,向右旋转钥匙三圈,锁开了,拔出钥匙
用力推,门开了