黑马程序员技术交流社区

标题: 这里实例里面的借口可以换成继承吗? [打印本页]

作者: 闪亮未来    时间: 2013-11-3 14:47
标题: 这里实例里面的借口可以换成继承吗?
  1. interface PCI
  2. {
  3.         public void open();
  4.         public void close();
  5. }

  6. class MainBoard
  7. {
  8.         public void run()
  9.         {
  10.                 System.out.println("mainboard run ");
  11.         }
  12.         public void usePCI(PCI p)//PCI p = new NetCard()//接口型引用指向自己的子类对象。
  13.         {
  14.                 if(p!=null)
  15.                 {
  16.                         p.open();
  17.                         p.close();
  18.                        
  19.                 }
  20.         }
  21. }


  22. class NetCard implements PCI
  23. {
  24.         public void open()
  25.         {
  26.                 System.out.println("netcard open");
  27.         }
  28.         public void close()
  29.         {
  30.                 System.out.println("netcard close");
  31.                 method();
  32.         }
  33.        
  34. }
  35. class SoundCard implements PCI
  36. {
  37.         public void open()
  38.         {
  39.                 System.out.println("SoundCard open");
  40.         }
  41.         public void close()
  42.         {
  43.                 System.out.println("SoundCard close");
  44.         }
  45. }
复制代码
这里面的NetCard  和SoundCard  都是用接口跟PCI连接的,如果我用继承可以吗?先不谈显卡声卡他们的现实意义能不能继承,纯粹看语句,如果换成继承的话,后面的也没问题啊,NetCard  和SoundCard  里面的open() 和close()不就相当于是对PCI里的函数的重写吗?
运行结果应该也都一样啊。

作者: ~﹏~    时间: 2013-11-3 14:56
当然可以换成继承啊,Java为什么会有接口这个东东呢?因为它不支持多重继承,也就是不能继承多个类,在你的程序中,PCI已经被抽象成为一个接口,它只能定义一些方法,而不会提供他的实现,那么如果你的PCI接口他自己也需要OPEN或者CLOSE的逻辑的话,你就不能定义他为接口了,什么声卡网卡的都需要继承PCI类才可以的!


作者: 寻丶丶觅    时间: 2013-11-3 15:00
继承类,实现接口,你也可以把该接口改成一个抽象类,在这里是没有问题。不过没多大意义,老毕也说了,可以把接口看成一个抽象类。虽然接口跟类属于平行关系。在这里是没区别的。
作者: 李新辉    时间: 2013-11-3 15:16
寻丶丶觅 发表于 2013-11-3 15:00
继承类,实现接口,你也可以把该接口改成一个抽象类,在这里是没有问题。不过没多大意义,老毕也说了,可以 ...

你技术分怎么这么多啊?
作者: 寻丶丶觅    时间: 2013-11-3 15:22
李新辉 发表于 2013-11-3 15:16
你技术分怎么这么多啊?

多帮助其他人,回答的能讲出自己的观点,想法,感觉老师就会给分的。或者提一些问题,不过我喜欢回答别人的问题,不会的可以看别人的回答,掌握知识,会的你回答了,也巩固了自己,算是我的学习方法吧
作者: 李新辉    时间: 2013-11-3 15:45
寻丶丶觅 发表于 2013-11-3 15:22
多帮助其他人,回答的能讲出自己的观点,想法,感觉老师就会给分的。或者提一些问题,不过我喜欢回答别人 ...

入学的分值组成在哪里  我一直 没找到…………
技术分只算25分是吧……
作者: 寻丶丶觅    时间: 2013-11-3 16:29
李新辉 发表于 2013-11-3 15:45
入学的分值组成在哪里  我一直 没找到…………
技术分只算25分是吧……

我也不清楚哦 我入学还早呢 我报了传智基础班 准备再重学下基础




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2