Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hi,
wenn ich eine Klasse von einer anderen erben lasse, kann ich dann das aufrufen von bestimmten Methoden "verbieten"? also die Methode aus der Klasse streichen?
ich tippe auf den typischen fall "alles oder nichts"
das erben vonner methode sollte sich mit final verhindern lassen
falls du die methode aber irgendwo doch gebrauchen willst wird dir das wohl nich helfen.
ich würd sagn, wo du se brauchst musste se normal vererben
wenne se nich haben willst weil irgendwas automatisch damit gemacht wird,
@Override un leeren body (ohne super aufruf)
Damit hat jede subklasse die methode aber nur die, wo du es willst, haben ne aktion drin stehn
Man könnte generell 2 Interfaces machen, eins mit passender Methode und eins ohne. Interface ohne Methode zurückgeben und nur wenn man es intern braucht auf das andere Interface casten (wenn ich dich richtig verstanden habe)
Öhm, nein? man darf doch keine sichtbarkeit einschränken... sonst würde man klassen bekommen, die zwar "ist eine art von X" erfüllen, aber überhaupt keine methoden von X zur verfügung stellen, das kann's doch nicht sein.
Man kann allerdings beim überschreiben alles public lassen, und UnsupportedOperationExceptions werfen... Hört sich aber irgendwie nach design-fehler an, wenn man sowas macht :bahnhof:
Öhm, nein? man darf doch keine sichtbarkeit einschränken... sonst würde man klassen bekommen, die zwar "ist eine art von X" erfüllen, aber überhaupt keine methoden von X zur verfügung stellen, das kann's doch nicht sein.
Man kann allerdings beim überschreiben alles public lassen, und UnsupportedOperationExceptions werfen... Hört sich aber irgendwie nach design-fehler an, wenn man sowas macht :bahnhof:
Man kann allerdings beim überschreiben alles public lassen, und UnsupportedOperationExceptions werfen... Hört sich aber irgendwie nach design-fehler an, wenn man sowas macht :bahnhof:
Hi,
wenn ich eine Klasse von einer anderen erben lasse, kann ich dann das aufrufen von bestimmten Methoden "verbieten"? also die Methode aus der Klasse streichen?
nein ... etweder alles oder nichts ... halbe Klassen gibts nicht oder hast Du halbe Eltern? ... ansonsten die entsprechende methode überschreiben und ein Exception werfen
public class A {
public void sagAAA() {
if (! this.getClass().equals(A.class)) {
throw new UnsupportedOperationException();
}
System.out.println("AAAhhhh!!!");
}
}
Ganz schlechte Idee, dann stimmt was mit deinem Design nicht...
public class A {
public void sagAAA() {
System.out.println("Aaahhh...!");
}
}
public class B extends A {
@Override
public void sagAAA() {
throw new UnsupportedOperationException();
}
}