繁体   English   中英

Netbeans覆盖注释

[英]Netbeans Override Annotation

我正在尝试创建一个从抽象超类继承的新类(包含三个抽象方法)。 问题是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的文档所说的内容:

指示方法声明旨在覆盖超类中的方法声明。 如果使用此注释类型对方法进行注释但未覆盖超类方法,则要求编译器生成错误消息。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM