A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

dingshan2019

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

如何使用接口完成对电脑提供外接的USB接口,连接电脑键盘使用。
1.分析。
电脑只负责提供USB接口,对USB接口负责,对USB接口提供方法。
键盘鼠标电脑不负责,USB对键盘鼠标负责。
这是编程思想。具体代码如下。

public interface USB {
        public abstract void open();
        public abstract void close();
}
//先定义一个USB的接口,提供两个抽象方法。
2.
public class Keyboard implements USB {
        public void open() {
                System.out.println("键盘开启");
        }
        public void close() {
                System.out.println("键盘关闭");
        }
}
//定义好一个键盘类,实现USB接口的两个抽象功能。
3.
public class Mouse implements USB {
        public void open() {
                System.out.println("打开鼠标");
        }
        public void close() {
                System.out.println("关闭鼠标");
        }
}//同理定义一个鼠标类,实现USB接口的两个抽象方法。
4.
public class Computer {
        public void openComputer() {
                System.out.println("电脑开机");
        }
        public void closeComputer() {
                System.out.println("电脑关机");
        }
        //因为是用电脑使用鼠标,所以把鼠标放到电脑里面的功能里面实现。
        public void useUSB(USB usb) {
                usb.open();
                usb.close();
        }
}       
定义一个电脑类,有两个空参方法。还有个有参数的的方法。问题来了,没有USB对象呀,因为USB是个接口,没办法new对象。
       这个方法没有usb实例参数
          因为USB类型是一个接口,但是Mouse和Keyboard都实现了接口USB,可以传参数。
          这样电脑就直接面对USB接口不用面对Mouse和Keyboard
        其实就是相当于 USB usb = new Mouse(); 就是多态
        因为在多态中 父类类型引用变量指向子类对象,可以调用子类的成员方法。
        用电脑的对象c调用useUSB方法就可以实现参数(前提是实现了接口,因为键盘和鼠标
                直接面对USB,跟电脑没有任何关系)
  再写一个Test类测试Computer

public class Test {
        public static void main(String[] args) {
                Computer c = new Computer();
                c.openComputer();
               
                Mouse m = new Mouse();
                c.useUSB(m);
               
                Keyboard k = new Keyboard();
                c.useUSB(k);
               
                c.closeComputer();
        }
}
好了  希望大家看了帖子可以更好的理解接口。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马