黑马程序员技术交流社区
标题:
接口的多实现的一个疑惑
[打印本页]
作者:
游兴钟
时间:
2012-5-18 21:34
标题:
接口的多实现的一个疑惑
interface A{
void show();
}
interface B{
int show();
}
这两个接口能被一个类实现嘛。。真实现了,再一建对象调用show()不是挂了嘛。但如果说不能同时被一个类实现,又违背了接口多实现的原则。求解。
作者:
Fc10232
时间:
2012-5-18 21:47
接口里边的函数只有函数声明没有执行代码,随便你实现哪一个都是一样的。
一般情况下接口只是强迫你实现,而并不关心你怎么实现,以及实现的方法有何意义
真正用的代码是类继承接口后类中的show()
作者:
黄奕豪
时间:
2012-5-18 21:55
本帖最后由 黄奕豪 于 2012-5-18 21:59 编辑
/*这个不行,编译直接挂了,因为即使你分别实现了不同返回值类型的函数,但是你调用的时候,主函数根本就不知道你是调用的哪个,但是如果返回值类型相同的话就可以, 因为接口没有方法体,所以多实现的时候只要重写一次函数就可以了!!像下面这样!!*/
interface A{
void show();
}
interface B{
void show();
}
class Demo implements A,B
{
public void show(){}//两个重写一次就行了!
public static void main(String[] args)
{
Demo d=new Demo();
d.show();
}
}
复制代码
作者:
任睦强
时间:
2012-5-18 22:00
本帖最后由 任睦强 于 2012-5-18 22:07 编辑
一个类可以继承多个接口,如果你的这个类继承了这两个接口的话,如果这两个接口有同一个一模一样的方法,这个就会重写这个方法
如果继承的接口方法名相同,返回类型不同 ,就会报错的
作者:
游兴钟
时间:
2012-5-19 01:05
黄奕豪 发表于 2012-5-18 21:55
多谢各位哥们儿的热心解答,也许是我的表述不清楚。在这里我想讨论的多实现的限制问题。
作者:
黄奕豪
时间:
2012-5-19 07:01
achilles 发表于 2012-5-19 01:05
多谢各位哥们儿的热心解答,也许是我的表述不清楚。在这里我想讨论的多实现的限制问题。 ...
接口多实现的限制除了接口本身的语法规则外,应该就这个是特例了!!我也是在学习中,如果有什么理解不够的!还希望多指教!!
作者:
李保成
时间:
2012-5-19 07:15
呵呵 是不是考虑使用以下内部类呢?
interface A
{
void show();
}
interface B
{
void show();
}
public class MultiInter implements A{
public void show(){
System.out.println("I am from A");
}
private class BImpl implements B{
public void get(){
System.out.println("I am from B");
}
}
public void get2(){
B b2=new BImpl();
b2.get();
}
public static void main(String rsg[]){
MultiInter mi=new MultiInter();
mi.get();
mi.get2();
}
}
作者:
niceBoy
时间:
2012-5-19 08:05
虚拟机只认方法名和参数列表来区别方法,所以重写一个就好了,随便什么返回值。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2