Ist es möglich, das überschreiben einer Methode in derselben Klasse in Java?

Werfen Sie einen Blick auf das folgende code-Beispiel :

public class Test{

   public static void main(String[] args){

        System.out.println(new Test());


       System.out.println(new Test(){

        public String toString(){
             return "manual override";
         }

       });



      System.out.println(new Test(){

              public String gm(){
                    return  "manual gm";
               }
        }.gm());
     }  //end of main method

   public String gm(){
     return "gm";
    }
}

Kann es einige argument, dass die toString() - Methode überschrieben, in der anonymen inneren Klasse, die ist eine ganz andere Klasse.
Aber das übergeordnete code befindet sich immer noch in der gleichen Klasse. So wird es gerechtfertigt sein, daraus zu folgern, dass in einigen Situationen [wie oben beschrieben] , das überschreiben einer Methode in der gleichen Klasse möglich ist?

Punkt, den Sie hier machen, wird zu einer Art "Überlastung". Überschreiben werden mit verschiedenen Klassen.
Nun, es ist die gleiche Datei, nicht in die gleiche Klasse. Haben Sie einen realen Fall, die Sinn macht für so etwas?
Wenn es Überlastung ist, dann wird das Programm nicht gedruckt haben "manual override". Neben überlastung, Signatur der Methode muss sich ändern - werden bestimmte Parameter geändert werden müssen, um eine überlastung. Aber ich habe mich nicht geändert, die Signatur der Methode der toString-Methode noch ein bisschen. Ich habe aktualisiert die Beispielcode, um Ihnen helfen, besser zu verstehen.
Hier, ich werde mich nicht in jede Diskussion, in der realen Welt Verwendung. Ich weiß, die obigen code-Beispiel ist nicht ein sehr gutes design der Praxis. Aber meine Frage war, falls eine solche situation Eintritt, was soll dann der Abschluss.

InformationsquelleAutor Debadyuti Maiti | 2012-06-13

Schreibe einen Kommentar