Netbeans覆盖注释



我试图创建一个从抽象超类继承的新类(包含三个抽象方法)。问题是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);
   }
}

子类是

 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");
   }

}

因为你正在重写(某种程度上-见下文)。

public class Avion extends Vehicul {
     public void mediulDeDeplasareAVehiculului() {
     ...
}

添加注释的一个原因是保护自己免受自己的伤害。如果修改了抽象类并删除了抽象方法,没有注释,那么子类中的方法将在您不知情的情况下变得"正常"。

有了注释,编译器会说"嘿——你告诉我你重写了什么东西,但你没有"

@Override的文档是这样说的:

指示方法声明打算覆盖类中的方法声明超类。如果使用此注释类型对方法进行了注释,但没有覆盖超类方法,编译器必须生成错误消息。

我知道这有点令人困惑,因为你实际上并没有覆盖任何东西(你正在实现它!),但这就是它的工作方式。

相关内容

  • 没有找到相关文章

最新更新