1 java inheritance abstract-class netbeans superclass
我正在尝试创建一个从抽象超类继承的新类(包含三个抽象方法)。问题是 netbeans 给了我一个警告:添加 @override 注释。如果我没有覆盖任何方法,我为什么要这样做(添加此注释)。有什么问题 ?
超类是
abstract class Vehicul {
String denumireaVehiculului;
float lungimeaMinimaVehicul;
int numarulMinimDeLocuri;
public abstract void mediulDeDeplasareAVehiculului();
public abstract void nivelulDeSiguranta();
// Constructor implicit
Vehicul() {
denumireaVehiculului = "Eu sint vehicul";
System.out.println(denumireaVehiculului);
lungimeaMinimaVehicul = 3.50f;
System.out.println("Lungimea minima este "+lungimeaMinimaVehicul);
numarulMinimDeLocuri = 2;
System.out.println("Numarul minim de locure este "+numarulMinimDeLocuri);
}
}
Run Code Online (Sandbox Code Playgroud)
子类是
public class Avion extends Vehicul {
public void mediulDeDeplasareAVehiculului() {
}
public void nivelulDeSiguranta() {
}
public String getDenumireaVehiculului() {
return "Avion";
public void afiseazaCineEsti() {
System.out.println("Eu sunt un avion");
}
Run Code Online (Sandbox Code Playgroud)
}
因为你是压倒性的(有点 - 见下文)。
public class Avion extends Vehicul {
public void mediulDeDeplasareAVehiculului() {
...
}
Run Code Online (Sandbox Code Playgroud)
添加注释的原因之一是为了保护自己免受自己的伤害。如果抽象类被修改并且抽象方法被移除,如果没有注释,子类中的方法将在您不知情的情况下变得“正常”。
有了注释,编译器会说“嘿 - 你告诉我你正在覆盖某些东西,但你没有”