关于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