日期:2014-05-20  浏览次数:20659 次

关于java接口的一个疑问,走过路过不要错过啊,帮着解决一下吧
以前学C++ 老师说C++的多重继承挺麻烦的,可能会引起函数或变量重名的问题。

因为要交java课程设计作业,这几天在研究java.......

但是问题就这样悄悄的来了。

interface A {
public double m();
}

interface B extends A {
public double m();
}

class C implements B {
public double m(){
return 0;
}
}

这到底算个啥? 编译通过了,但是到底算是重写了那个m()?
但是将代码部分更改
interface B extends A {
public void m();
}

编译没有办法通过,哼!要是通过了,我倒是要看看怎么重写来着!

------解决方案--------------------
B的m方法重写了A的m方法(虽然还是什么都没有写),C重写的当然是B的m.其实准确地说不叫重写叫实现

重写方法不能改返回类型,必须还是double