Аннотации переопределения NetBeans - PullRequest
1 голос
/ 16 октября 2011

Я пытаюсь создать новый класс, который наследуется от абстрактного суперкласса (содержит три абстрактных метода). Проблема в том, что 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 ]

4 голосов
/ 16 октября 2011

Потому что вы переопределяете (вроде - см. Ниже).

public class Avion extends Vehicul {

     public void mediulDeDeplasareAVehiculului() {
     ...
}

Одной из причин добавления аннотации является защита себя от себя. Без аннотации, если абстрактный класс был изменен, а абстрактный метод удален, метод в подклассе стал бы «нормальным» без вашего ведома.

С аннотацией компилятор скажет: «Эй, вы говорите мне, что что-то переопределяете, но это не так»

1 голос
/ 16 октября 2011

Вот что говорит документация для @Override:

Указывает, что объявление метода предназначено для переопределения объявления метода в суперкласс. Если метод аннотирован этим типом аннотации, но не переопределяет Метод суперкласса, компиляторы должны генерировать сообщение об ошибке.

Я знаю, что это немного сбивает с толку, потому что вы на самом деле ничего не отменяете (вы реализуете это!), Но именно так оно и работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...