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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. /*
  2. 需求:
  3. 电脑运行实例,
  4. 电脑运行基于主板
  5. */

  6. interface PCI  //PIC接口  
  7. {
  8.         public void open();
  9.         public void close();
  10. }

  11. class MainBoard //主板
  12. {
  13.         public void run()   //3、执行run方法,屏幕输出。
  14.         {
  15.                 System.out.println("主板运行:MainBoard run");
  16.         }
  17.         public void usePCI(PCI p)  // 5、传入声卡网卡对象。   //(PCI p = new NetCard()  接口型引用指向自己的子类对象)
  18.         {
  19.                 if (p!=null)  //6、判断 p!=null,向下执行。
  20.                 {
  21.                         p.open();     //7、因为p指向子类对象 NetCard ,所以执行NetCard的open方法。

  22.                         p.close();    //9、因为p指向子类对象 NetCard ,所以执行NetCard的close方法。
  23.                 }
  24.         }
  25. }

  26. class NetCard implements PCI//网卡
  27. {
  28.         public void open()
  29.         {
  30.                 System.out.println("网卡开启:NetCard open");  //8、执行
  31.         }
  32.         public void close()
  33.         {
  34.                 System.out.println("网卡关闭:NetCard close"); //10、执行
  35.         }
  36. }

  37. class  Demo
  38. {
  39.         public static void main(String[] args)
  40.         {
  41.                 MainBoard mb=new MainBoard(); //1、建立主板对象。
  42.                 mb.run();                     //2、对象调用“run方法”。
  43.                
  44.                 mb.usePCI(new NetCard());     //4、对象调用usePCI方法,传入网卡对象。
  45.         }
  46. }
复制代码


@黑马牛人~~

按序号走的流程,帮忙看一下,总感觉哪不对劲

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

3 个回复

倒序浏览
第8、第10应该是 子类NetCard 复写了 接口的方法吧?
回复 使用道具 举报
我也刚出学到这里。。按照你的流程走感觉没错呀。。执行顺序是对的。唯一注意的就是在第五步,多态那里PCI p = new NetCard(),当传入网卡的对象时,网卡类实现了PCI接口的方法,并对PCI接口的打开open(),关闭close()方法进行了重写,下面就是调用了。。你的顺序是完全正确的。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
疲劳的小马 发表于 2014-2-16 19:43
我也刚出学到这里。。按照你的流程走感觉没错呀。。执行顺序是对的。唯一注意的就是在第五步,多态那里PCI  ...

恩恩 对就行了 多谢解答~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马