OOP Vererbungshierarchie: Wie wird sie in Java ausgezeichnet

DrPCox

Mitglied
Guten Abend,

ich habe wahrscheinlich eine sehr einfache Frage, aber ich komme gerade nicht weiter. Für eine Übung zu einer Java-VL sollen wir uns mit Vererbung beschäftigen.

Gegeben sind eine Klasse Säugetier und je eine Klasse Katze und Hund. Säugertier soll Superklasse von Katze und Hund sein. In einem UML-Diagramm habe ich das auch mit Pfeil etc. alles eingerichtet gekriegt, aber wie teile ich nun konkret Java mit, dass Katze und Hund Subklassen von Säugetier sind? Alle drei Klassen liegen im gleichen Paket.

Ich weiß, dass die Frage echt bescheuert einfach ist, aber wenn ich meine Bücher oder Google/Forensuche frage, wirds echt unübersichtlich und ich hoffe, dass es mir hier jemand kurz sagen kann.

Beste Grüße,

Der Doc
 
Zuletzt bearbeitet:
ich bin so ein großer idiot^^

aber eines noch: angenommen ich habe in der klasse säugetier private variablen. werden diese dann per extends auch an die subklassen weitervererbt, oder nicht? ich meine nämlich nicht, aber mein tutor der übung war sich absolut nicht sicher und meinte, dass extends auch private member weitervererbt.
 
Sie werden nicht bzw. nur implizit weitervererbt - du hast auf sie also nur über die entsprechenden Getter- und Setter-Methoden Zugriff.

Beispiel:
Java:
public class A {

	private int foo;

	public int getFoo() {
		return foo;
	}

	public void setFoo(int foo) {
		this.foo = foo;
	}
}

public class B extends a {

	public void bar() {
		foo = 5;	// Geht nicht - privates Attribut der Superklasse.
		setFoo(5);	// Geht - Setter-Methode.
		if (5 == foo) {	// Geht nicht.
			// ...
		}
		if (getFoo() == 5) {	// Geht - Getter-Methode.
			// ...
		}
	}
}
 
Solange getter und setter public sind...was sie sein sollten, weil es sonst keinen Sinn macht^^

Danke nochmal für die Bestätigung. Ich wusste doch, dass ich Recht habe 😀

...und Danke auch an eRaaa für die schnelle Antwort 🙂
 
Ok..ich habe doch noch eine Frage:

Kann ich eine Abstrakte Methode die in einer abstrakten Superklasse steht überladen?

Eclipse meckert gerade rum, weil ich bei der einen Variante keine Parameter hatte (wie in der abstrakten Methode vorgesehen) und in der anderen Variante einen Integer übergeben wollte.
 
Ich denke, das sollte möglich sein - allerdings nur dann, wenn du auch die vorgegebene abstrakte Methode implementierst (oder die erbende Klasse ebenfalls abstract ist).
 

Neue Themen


Zurück
Oben