定义界面 USB,其中包含抽象方法打开和关闭。定义类麦克风、键盘、鼠标实现 USB 接口。 定义类计算机。计算机包含专用 USB [] USB。计算机包含三种公共方法:空隙添加(USB USB):无效电源():无效电源关闭()。在主要方法中,新计算机模拟电源和电源关闭。结果如下:
package experience6;
public class experience6__USB {
public static void main(String[] args) {
computer c1=new computer();
c1.add(new Micphone());
c1.add(new keyboard());
c1.add(new Mouse());
c1.powerOn();
}
}
interface USB{
public abstract void turnon();
public abstract void turnoff();
}
class Micphone implements USB{
public void turnon() {
System.out.println("麦克风已连接");
}
public void turnoff() {
System.out.println("麦克风未连接");
}
}
class keyboard implements USB{
public void turnon() {
System.out.println("键盘已连接");
}
public void turnoff() {
System.out.println("键盘未连接");
}
}
class Mouse implements USB{
public void turnon() {
System.out.println("鼠标已连接");
}
public void turnoff() {
System.out.println("鼠标未连接");
}
}
class computer{
private USB [] usb;
int i;
public computer(){
usb=new USB [5];/*1.这里是new五个USB类型的数据而不是内容(注意区分数组new是new其子类成员的类型而其他引用new的是该变量的内容)
这里是USB的数组,而每一个代表一个USB接口类型的数据,可以再在其中再new一个
2.是只能将子类new给父类吗,在各个类中运用instance也可以使用此原理吗 */
}
public void add(USB usb1) {
for(i=0;i<5;i++) {
if(usb[i]==null) {
usb[i]=usb1;
break;
}
}
if(i==5)
System.out.println("USB接口已经满了");
}
public void powerOn() {
for(i=0;i<5;i++) {
if(usb[i]!=null)
usb[i].turnon();;
}
System.out.println("电脑开机了");
}
public void poweroff() {
for(i=0;i<5;i++) {
if(usb[i]!=null)
usb[i].turnoff();
}
System.out.println("电脑关机了");
}
}