黑马程序员技术交流社区
标题:
关于接口的子类对象的问题
[打印本页]
作者:
李晓旭
时间:
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