Ich versuche, einige benutzerdefinierten Ausnahmen mit Hilfsmethoden zu schreiben für die Variablen wie diese Einstellung:Java Abstrakte Klassen: Zurückgeben „dieser“ Zeiger für abgeleitete Klassen
public class KeyException extends RuntimeException {
protected String Id;
protected KeyException(String message) {
super(message);
}
protected KeyException(String message, Throwable cause) {
super(message, cause);
}
public String getId() {
return keyId;
}
public KeyException withId(final String Id) {
this.Id = Id;
return this;
}
}
Doch meine abgeleiteten Klassen, ich nicht verwenden kann, die "withId" -Methode, da sie nur die Basisklasse zurückgibt - gibt es trotzdem den "this" -Zeiger zurück, ohne die Methode in jeder einzelnen abgeleiteten Klasse zu überschreiben?
'this' bezieht sich auf das aktuelle Objekt, daher ist es der Typ einer Derived-Klasse, wenn Sie ein abgeleitetes Objekt verwenden. – midhunhk
@silverback Dies ändert nicht den Rückgabetyp, so dass der Compiler nicht weiß, dass der Typ "Derived" ist. –
Ich habe es so belassen, aber wenn ich eine Instanz eines abgeleiteten Typs erstelle, gibt es immer den Basistyp zurück Ich bin nicht in der Lage, die Methoden – KingTravisG