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

© 邬jerry 中级黑马   /  2015-10-5 19:19  /  160 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1,java中只能利用接口达到多实现而已,跟多继承相仿
2,java中唯一可以实现多继承的 就是接口与接口之间了。
先说继承 比如
class fu1
{
void show(){}
}
class fu2
{
void show(){}
}
class zi extends fu1,fu2
{
void show(){}
}
这时候 创建zi引用 调用show方法 java 虚拟机 就不知道该调用父类的哪个show方法了
同理 在接口中
class fu1
{
void show();
}
class fu2
{
void show();
}
class zi extends fu1,fu2
{
void show(){}
}
接口的fu1 和 f2 的show方法都是abstract的 抽象的 是没有方法体的
所以只有子类的show方法是有方法体的 所以接口 可以多实现 也就是变量的多继承

所以也可以推出 接口与接口之间也是可以多继承的 就算接口a 的父类接口 b和c都有同一个方法show()
但是他们都是抽象方法 a继承他们 也是抽象的 这个不就可以继承了吗? 由实现的例子就可以推出来 ,接口确实是可以多继承的。

2 个回复

倒序浏览
所以接口 可以多实现 也就是变量的多继承?真的不理解你这一句话表达的是什么意思
回复 使用道具 举报
只有接口才能多继承接口 而类只能多实现接口 所以应该是class zi implements fu1,fu2
而且类实现接口也不存在什么fu zi 关系
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马