接口的具体例子:
package CSY0825;
public interface Lock {
//作为一把锁具备的功能
public void unlock();//开锁
//作为一把锁具备的功能
public void lock();//上锁
}
class Door{
Lock mylock;//定义一个锁的接口变量mylock
public void openDoor(){
mylock.unlock();//方法体mylock.unlock():通过调用锁的unlock()方法实现开门功能
}
public void closeDoor(){
mylock.lock();//通过调用锁的lock()方法实现关门功能
}
}
package CSY0825.locks;
import CSY0825.Lock;
public class KeyLock implements Lock {
public void unlock(){
System.out.println("使用钥匙解锁,门开了");
}
public void lock(){
System.out.println("使用钥匙上锁,门关了");
}
}
package CSY0825.locks;
import CSY0825.Lock;
public class FaceIDLock implements Lock {
public void lock(){
System.out.println("人脸识别上锁上锁,门关了");
}
public void unlock(){
System.out.println("人脸识别锁解锁,门开了");
}
}
package CSY0825.locks;
import CSY0825.Lock;
public class PassWordLock implements Lock {
public void unlock(){
System.out.println("使用密码解锁,门开了");
}
//作为一把锁具备的功能
public void lock(){
System.out.println("使用密码解锁,门关了");
}
}
package CSY0825;
import CSY0825.locks.FaceIDLock;
import CSY0825.locks.KeyLock;
import CSY0825.locks.PassWordLock;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
//这是我们购买的门对象
Door door=new Door();
//这是我们购买的门锁对象
KeyLock keyLock=new KeyLock();
FaceIDLock faceIDLock=new FaceIDLock();
PassWordLock passWordLock=new PassWordLock();
//选择三把锁中的哪一个作为门锁
door.mylock=keyLock;
Scanner sc=new Scanner(System.in);
while(true)
{
System.out.println("请选择: 1-钥匙 2-密码 3-人脸");
switch(sc.nextInt()){
case 1:
door.mylock=keyLock;
break;
case 2:
door.mylock=passWordLock;
break;
case 3:
door.mylock=faceIDLock;
break;
}
while(sc.hasNext()){
System.out.println("请选择操作: 1-开门 2-关门");
int num=sc.nextInt();
if(num==3)
{
break;
}
switch(num){
case 1:
door.openDoor();
break;
case 2:
door.closeDoor();
break;
}
}
}
}
}
类与类的继承,接口的继承的区别