在JAVA中接口是一种能力,是给父类赋予特有的能力变成想要的子类,例如把锁的能力赋予门,形成门的子类防盗门
语法结构:
public interface Lock {
public abstract void foo(); //public abstract (默认)是可以省略的
}
特性:
接口不能被实例化,只能被类实现
实现类必须实现接口的所有方法
实现类可以有多个接口,多个接口用逗号隔开
接口中的变量都是静态常量
类与接口的关系
类与类:两者之间是可以继承的,继承关系
类与接口:两者之间不能继承,接口可以通过类来被实现。实现关系
接口与接口:接口与接口之间也是可以继承,继承关系
小练习
实现防盗门的功能
1、创建Door类
public abstract class Door {
// 定义开门的功能
public abstract void openDoor();
// 定义关门的功能
public abstract void closeDoor();
}
2、创建Lock接口
public interface Lock {
// 定义开锁的功能
void openLock();
// 定义上锁的功能
void closeLock();
}
3、创建TheftproofDoor类
public class TheftproofDoor extends Door implements Lock {
// 接口和父类里的抽象方法都要重写
@Override
public void openLock() {
System.out.println("插上钥匙,左转...开锁");
}
@Override
public void closeLock() {
System.out.println("插上钥匙,右转...锁门");
}
@Override
public void openDoor() {
System.out.println("推......开门");
}
@Override
public void closeDoor() {
System.out.println("拉......关门");
}
}
4、创建测试类
public class Text {
public static void main(String[] args) {
TheftproofDoor fdm=new TheftproofDoor();
System.out.println("出门");
fdm.closeDoor();
fdm.closeLock();
System.out.println("-----------------");
System.out.println("回家");
fdm.openLock();
fdm.openDoor();
}
}
5、运行结果