黑马程序员技术交流社区

标题: 关于接口的子类对象的问题 [打印本页]

作者: 李晓旭    时间: 2012-3-12 23:27
标题: 关于接口的子类对象的问题
本帖最后由 李晓旭 于 2012-3-12 23:30 编辑

class Fu{ ......}

class Test extends Fu implements Runnable //Test类 继承了Fu父类 实现了Runnable接口
{
public void run()
{ ...... }
}
class Demo
{
public static void main(String[] args)
{
  Test t = new Test();
  new Thread(t).start();
}

public Thread(Runnable target)

参数:
target - 其 run 方法被调用的对象。

如果t是Runnable接口的子类对象,t又是Test类的对象,又是Fu的子类对象,这是不是就相当于一种多重继承(虽然java里面用extends,implements区别了两种概念)?
接口可以继承接口,但是类只能实现接口,这是不是一种变向的继承关系?
所以Test的对象才能叫Runnable接口的子类对象。





作者: 贠(yun)靖    时间: 2012-3-13 02:19
接口本来就是继承的另一种表现形式,接口的出现优化了c++中多继承的弊端
比如:
class fu1
{
   void show(){}
}
class fu2
{
   void show(){}
}
class zi  extend fu1,fu2,
{
}
这时候  zi。show()  是不是就不知道调用哪个了?  这是c++多继承最大的弊端
但是java的接口中  所有的方法都是abstract 的   是没有方法体的
  就算两个接口中有相同的方法,这个都不影响的  子类实现接口 调用方法 也不会出现像继承中  不知道该调用哪个的
     有一点要说的是  java确实存在着多继承  那就是接口和接口之间可以进行多继承的







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