让我说我有三个课程如下
class A { //Master class.
public int getNum() {
return 1;
}
}
class B extends A {
@Override
public int getNum() {
return 2;
}
}
class C extends A {
@Override
public int getNum() {
return 3;
}
}
现在,如果我需要再创建一个方法(比如C类的getRandNum()),是否有任何注释或某种方式来警告我,同时编译该方法仅存在于C类但不存在于A类中( master class)也许是一些注释,如“ShowNotImplementedOnMasterClassWarning”?
另外,有没有办法在上述规则中添加例外?也许在C类中使用像“SuppressNotImplementedOnMasterClassWarning”这样的注释创建一个不需要在A类中的方法?
编辑:问题是我现在有一个非常大的代码库,在编写各个方法时,开发人员忽略了@Override注释,我找不到哪些是重写方法,哪些不是!
那么有什么办法可以强制所有方法默认使用@Override注释,并且只检查检查后我不需要的方法的@SuppressOverride? p>
答案 0 :(得分:2)
你为什么要这样做呢?
如果您在C
课程中有一个不在A
中的方法,那么如果您尝试在A
对象上调用它,您自然会收到错误:< / p>
A a = new A();
a.getRandNum(); // error!
如果您打算将该方法放在每个班级中并且您想要这个警告,因为您害怕您可能忘记将其添加到需要它的每个班级,请不要担心。只需将方法放在A
和B
中,C
就会自动继承该方法。
由于首先不需要这个警告,你不需要任何东西来压制它。只需在C
中编写一个普通方法,它就只能在C
中。
答案 1 :(得分:0)
简单。
C
中的所有方法都有@Override
注释。如果没有要覆盖的内容,您将收到错误。@Override
注释