簡體   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