Netbeans覆盖注释

时间:2011-10-16 19:06:19

标签: java inheritance netbeans abstract-class 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);
   }
}

子类是

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

   }

}

2 个答案:

答案 0 :(得分:4)

因为你是压倒性的(有点 - 见下文)。

public class Avion extends Vehicul {

     public void mediulDeDeplasareAVehiculului() {
     ...
}

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

通过注释,编译器会说“嘿 - 你告诉我你是在覆盖什么,但你不是”

答案 1 :(得分:1)

以下是@Override的文档说明:

  

表示方法声明旨在覆盖a中的方法声明   超类。如果使用此注释类型注释方法但不覆盖a   超类方法,编译器需要生成错误消息。

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