Skip to Content

1.43 Pakete und Sichtbarkeit von Klassen und Methoden

Die unten aufgeführten Klassen befinden sich in unterschiedlichen Paketen.

  • Fügen Sie in die Klassen des Pakets Paket1 die minimal benötigten Modifizierer ein, die für das Paket Paket2 und das Paket Paket3 benötigt werden
  • Fügen Sie im Quellcode der Klassen KlasseAC und KlasseABD alle benötigten Befehle zur Benutzung der Klassen im Paket Paket1 ein.

Der Befehl String s = aa.print(); in der Klasse KlasseABD ist auch trotz korrekter Import-kommandos nicht übersetzbar. Änderen Sie einen der gegebenen Methoden-modifizierer so, dass das Kommando übersetzbar wird. Ändern Sie keine Modfizierer von Klassen oder Paketzugehörigkeiten! 

Fügen Sie alle Änderungen direkt im Quellcode ein.

Datei: KlasseA.java:
package Paket1;
class KlasseA {
protected String print()
{return "KlasseA";} }

Datei KlasseAA.java:

package Paket1;
class KlasseAA extends KlasseA{  }

Datei KlasseAB.java:

package Paket1;
class KlasseAB extends KlasseA{  }
Lage der Klassen in den Paketen
Datei KlasseAC.java:
package Paket2;
class KlasseAC extends KlasseA { }
Datei Klasse KlasseABD.java:
package Paket3;
  
class KlasseABD extends KlasseAB{
KlasseA myRef;
public void test() {
KlasseAB aa = new KlasseAB();
String s = aa.print(); } }

 

 

Niveau 1
Schwierigkeitsgrad mittel
Zeit 7 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 1.42: Überschriebene Methoden

Eine Methode überschreibt eine Methode der Oberklasse wenn sie

a) sie die gleiche Signatur (Name und Parameterliste) hat,
b) sie den gleichen Rückgabetyp hat,
c) die überschriebene Methode nicht statisch ist ("hiding"),
d) die Zugriffsmodifikatoren der Methode der Unterklasse nicht beschränkender als die der Oberklasse sind.

Beispiel

public class Ober {
public void print() {...}
}

public class Unter extends Ober {
public void print() {...} }

 

Comments

Überschreiben

Laut der Oracle Java Documentation überschreibt eine Methode einer Unterklasse die Methode einer Oberklasse, wenn
a) sie die gleiche Signatur (Name und Parameterliste) hat,
b) sie den gleichen Rückgabetyp hat,
c) die überschriebene Methode nicht statisch ist ("hiding"),
d) die Zugriffsmodifikatoren der Methode der Unterklasse nicht beschränkender als die der Oberklasse sind.

Quelle: "Overriding and Hiding Methods", Oracle Java Documentation

Stimmt.

Danke.



blog | by Dr. Radut