2011-10-16 2 views
1

추상 수퍼 클래스 (세 가지 추상 메서드 포함)에서 상속받은 새 클래스를 만들려고합니다. 문제는 netbeans가 나에게 경고를 제공한다는 것입니다. @override annotation을 추가하십시오. 어떤 메서드를 재정의하지 않으면 왜이 작업을 수행해야합니까 (이 주석을 추가해야합니다). 뭐가 문제 야 ? (- 아래 참조 종류의)Netbeans Override Annotation

슈퍼 클래스는 서브 클래스는

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

    } 

}

답변

1

@Override에 대한 설명서의 말씀이다 "이봐 당신은 당신이 뭔가를 무시하고 나에게 말하고있어,하지만 당신은 아니야"

메서드 선언이 수퍼 클래스의 메서드 선언을 재정의하기위한 것임을 나타냅니다. 메소드가이 주석 유형으로 주석을 달았지만 수퍼 클래스 메소드를 겹쳐 쓰지 않으면 컴파일러는 오류 메시지를 생성해야합니다.

실제로 혼란스럽지 않으므로 (실제로 구현 중입니다!), 그것이 작동하는 방법입니다.

4

당신이 무시되기 때문에입니다

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() { 
    ... 
} 

주석을 추가하는 한 가지 이유는 자신을 보호해야하기 때문입니다. 추상 클래스가 수정되고 추상 메소드가 제거 된 경우 주석이 없으면 사용자가 알지 못하는 사이에 서브 클래스의 메소드가 "정상"이됩니다. 주석으로

는, 컴파일러는 말할 것이다 -

여기