黑马程序员技术交流社区

标题: 多线程问题?回帖有奖哟! [打印本页]

作者: 全海波    时间: 2012-7-20 06:40
标题: 多线程问题?回帖有奖哟!

作者: 郑彬    时间: 2012-7-20 07:57
感觉是可以的,但是这样子不是很麻烦,student子类中的run方法覆盖了person中的run方法,person中的run方法又覆盖了Thread中run方法,而且创建线程对象的时候多了很多没必要的数据,占用资源。操作也不方便。所以不建议这样做。
作者: 李思静    时间: 2012-7-20 08:10
尽量少用继承,继承关系一多,代码冗余,容易出错。理论上是可以的,但是为什么不直接用接口实现呢?
作者: 梁志仲    时间: 2012-7-20 08:25
继承是is,接口是like。要实现多线程,通过继承方式只要是Thread的一个子类就可以复写Thread的run方法,创建新的线程。当然,这会像楼上所说的,代码会冗余,更重要的是扩展性不好。而接口主要是用来扩展程序的功能的,用接口实现的话,该类在具备其父类的属性和行为外,还实现了接口的run方法,可读性大大提高。
作者: rslheima    时间: 2012-7-20 09:12
  1. //做个试验呀,就显而易见了。
  2. A extends B
  3. B extends C
  4. DuoJiCheng  extends A
  5. 类DuoJiCheng可以调用ABC中的方法,说明可以实现多层继承
  6. 但是你不觉得这样做很繁琐吗?
  7. //----------------------代码-----------------------------------------
  8.         public class DuoJiCheng extends A{
  9.                 public static void main(String [] args){
  10.                       new DuoJiCheng().printA();//A
  11.                         new DuoJiCheng().printB();//B
  12.                         new DuoJiCheng().printC();//C
  13.                 }
  14.         }
  15. class A extends B{
  16. public void printA(){System.out.println("A");}
  17. }

  18. class B extends C{
  19. public void printB(){System.out.println("B");}
  20. }

  21. class C{
  22. public void printC(){System.out.println("C");}
  23. }
复制代码

作者: 芦曦    时间: 2012-7-20 09:17
Java已经提供了接口这个非常方便的方法,为什么非要用继承呢?
我记得毕老师同样也说过,不要把2个没有关系的类,因为某种原因,非要让它们产生子父类关系。

作者: shenshuangxi    时间: 2015-1-17 15:28
多层继承当然是可以的,不能多继承指的是不能在一个类中有多个直接父类
作者: 0416-孙磊    时间: 2015-5-1 21:05
比如有A,B,C,D,E五个类。虽不支持多继承,但是可以通过多层继承的方式来通过E来实现/复写A中的方法。简而言之,A中有run()方法,那么可以B->A这样B里就有了父类的run(),同理C->B,D->C,E->D.。多层继承。不过一般没人这么干。
作者: hzw@ql    时间: 2015-6-19 19:41
说好有奖的啊。。。




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