Überschriebene Methoden überschreiben

7

Ich bin neu in Java und habe eine sehr grundlegende Frage.

Ich habe 2 Elternklassen unter demselben Paket. Animal Abstract Class und Machine Class.

Jetzt hat die Klasse Animal Abstract eine geschützte Methode. Ich bin mir bewusst, dass geschützte Methoden zugänglich sind, wenn die Klassen unter dem gleichen Paket sind.

Ich kann auf diese geschützte Methode in meiner Machine -Klasse zugreifen, und die Frage lautet .. Ist es möglich, diese geschützte Methode zu überschreiben? Ohne die Animal -Klasse zu erweitern.

    
Dennis Salibio 24.07.2012, 07:23
quelle

6 Antworten

22
  • protected - Kann von Unterklassen überschrieben werden, unabhängig davon, ob sie sich im selben Paket befinden oder nicht
  • default (kein Zugriffsmodifikator) - kann nur aufgerufen oder außer Kraft gesetzt werden, wenn sich beide Klassen im selben Paket befinden
Jeshurun 24.07.2012 07:26
quelle
6

Sie können Methoden nur durch Erweiterungen überschreiben.

Sie können eine geschützte Methode mit einer anonymen Unterklasse überschreiben, wenn Sie möchten. ZB

%Vor%

In einer anderen Klasse:

%Vor%

Wird ausgegeben:

%Vor%     
ᴇʟᴇvᴀтᴇ 24.07.2012 07:27
quelle
1

Nein Das Überschreiben bedeutet, dass das Verhalten von der übergeordneten Klasse übernommen wird und dass dies nicht möglich ist, ohne die Klasse zu erweitern.

%Vor%

Führen Sie den folgenden Code aus, um es zu testen

%Vor%

O/p=false

Hier überschreiben wir das Verhalten von methodA

    
amicngh 24.07.2012 07:31
quelle
0

Um eine Methode zu überschreiben, müssen Sie diese Klasse erweitern. Das bedeutet Überschreiben: eine Methode mit der gleichen Signatur wie die Superklasse.

    
tibtof 24.07.2012 07:28
quelle
0

Das Überschreiben per Definition sagt ..

Eine Instanzmethode in einer Unterklasse mit derselben Signatur (Name, plus Nummer und Typ ihrer Parameter) und Rückgabetyp als Instanzmethode in der Oberklasse überschreibt die Methode der Oberklasse.

So AFAIK, wenn Sie die Super-Klasse nicht erweitern, gibt es keine Möglichkeit, die Methode zu überschreiben.

    
SiB 24.07.2012 07:46
quelle
0
Auf

Geschützt kann nur von Unterklassen in anderen Paketen zugegriffen werden. Klassen in demselben Paket können auch auf geschützte Felder, Methoden und Konstruktoren zugreifen, auch wenn sie keine Unterklasse der Klasse des geschützten Members sind.

Überschreiben: Eine Instanzmethode in einer Unterklasse mit derselben Signatur.

Antwort auf Ihre Frage:
Aber wenn du extends Animal class in deinem Machine class nicht willst, dann überschreibt es nicht nur eine normale Funktion deiner eigenen Klasse.

    
Sumit Singh 24.07.2012 07:53
quelle

Tags und Links