是否应该使用实现接口方法的方法进行注释@Override?
指示方法声明旨在覆盖超类中的方法声明.如果使用此批注类型注释方法但不覆盖超类方法,则编译器需要生成错误消息.
我不认为接口在技术上是超类.或者是吗?
如果我有一个具有以下功能的抽象类 -
abstract class A{
void foo(String s) throws Exception{
throw new Exception("exception!");
}
}
Run Code Online (Sandbox Code Playgroud)
然后是另一个扩展抽象类并实现其自己的foo版本的类 -
class B extends A{
void foo(String s){
//do stuff that does *not* throw an exception
}
}
Run Code Online (Sandbox Code Playgroud)
这会产生问题吗?具体在以下测试案例中 -
Collection<A> col = new Collection<A>();
B b = new B();
col.add(b);
for(A a : col){
a.foo();
}
Run Code Online (Sandbox Code Playgroud)
我做了一些测试,似乎没有什么破坏,但我不明白为什么B的foo被调用而不是A的