Define an interface USB, in which contains abstract methods turnOn and turnOff. Define class Micphone, Keyboard, Mouse implement USB interface.
Define class Computer. Computer contains private USB D usb. Computer contains three public methods: void add(USB usb); void powerOn(); void powerOff). In main method , new a computer to simulate the powerOn and powerOff.
The result is as follows:
望采纳!
定义一个USB接口,其中包含打开和关闭的抽象方法。定义类麦克风、键盘、鼠标实现USB接口。
定义计算机类。计算机包含专用USB和USB。计算机包含三种公共方法:void add(USB);void powerOn();无效(关闭电源)。在主要方法中,一台新的计算机来模拟通电和断电。
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("电脑关机了");
}
}
《一文读懂Java面向对象》
https://www.52interview.com/solutions/49