Door.java
package com.web;
public abstract class Door {
//防盗门是一个门 is a 的关系
//开门功能
public void openDoor() {};
//关门功能
public void closeDoor() {};
}
Lock.java
package com.web;
public interface Lock {
//防盗门上有一个把锁 has a 的关系
//锁门功能
public void lockDoor();
//解锁功能
public void unlockDoor();
}
TheftDoor.java
package com.web;
public class TheftDoor extends Door implements Lock{
//开门的实现方法
public void openDoor() {
System.out.println("开始开门。开门中。开门结束");
}
//关门的实现方法
public void closeDoor() {
System.out.println("准备关门。关门中。关门结束");
}
//锁门功能
@Override
public void lockDoor() {
System.out.println("插入钥匙,转动,锁上,拔出钥匙");
}
//解锁功能
@Override
public void unlockDoor() {
System.out.println("插入钥匙,转动,解锁,拔出钥匙");
}
}
MyTest.java
package com.web;
import org.junit.Test;
public class Mytest {
@Test
public void test1() {
//不使用接口调用
TheftDoor theftDoor= new TheftDoor();
//出门步骤:关门---》锁门
theftDoor.closeDoor();
theftDoor.lockDoor();
//回家步骤:开锁---》开门
theftDoor.unlockDoor();
theftDoor.openDoor();
System.out.println("+++++++++++++++++++++++++++");
//调用接口中的方法,实现实现类中的方法
Lock lock= new TheftDoor();
lock.unlockDoor();
lock.lockDoor();
System.out.println("++++++++++++++++++++++++++");
//调用抽象类中的方法,实现实现类中的方法
Door door= new TheftDoor();
door.closeDoor();
door.openDoor();
/**
* 门和防盗门是继承关系;
* 但是门和锁是非继承关系,如何实现继承呢?
* java的设计者想到了interface接口;
*
*
*/
}
}
本文介绍了一个基于Java的门锁接口和防盗门类的设计案例,通过实现Lock接口和继承Door抽象类,TheftDoor类展示了如何结合接口和继承特性来实现防盗门的功能,包括开关门和锁门解锁。
945

被折叠的 条评论
为什么被折叠?



