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.
VererbungAusgabe von Objektattributen der Oberklassen
public class Alpha {
private int a;
private static int s;
public Alpha(int a)
{
this.a = a;
}
public static void setS(int s)
{
Alpha.s = s;
}
public static int getS()
{
return Alpha.s;
}
}
Java:
public class Beta {
private int b;
public Beta(int b)
{
this.b = b;
}
}
Java:
public class Gamma {
private int c;
public Gamma(int c)
{
this.c = c;
}
}
Java:
public class Test {
public static void main(String[] args) {
Alpha eins = new Alpha(1);
Beta zwei = new Beta(2);
Gamma drei = new Gamma(3);
}
}
Bin leider mit den Programmierfähigkeiten in Java am Ende. Wie müsste es weitergehen? Leider habe ich auch keine Musterlösung.
Fragen:
1) Die Konstruktoren für Beta und Gamma sind wohl falsch, weil ich die Objektvariablen der Oberklassen nicht berücksichtige???
2) Bekomme es nicht hin, toString() so zu überschreiben, dass alles korrekt ausgegeben wird.
3) Wie müsste die toString-Ausgabe in der main-Klasse aussehen?
also sowohl dein Titel "Vererbung Ausgabe von Objektattributen der Oberklassen", als auch das UML-Diagramm "spricht" von Vererbung, nur bei dir im Code finde ich kein [c]extends[/c]
=> [c]class Beta extends Alpha {[/c] und
Code:
class Gamma extends Beta
und mal ein kleiner Hinweis zum Überschreiben der toString() - Methode...:
in der Klasse Alpha,müsste sie so oder ähnlich aussehen:
Java:
@Override
public String toString() {
return "a= " + a + " , S=" + Alpha.getS();
}
So wie ich es verstanden habe, müsste ich für jedes erzeugte Objekt jeweils die Objektattribute ausgeben.
Die Objektattribute sind als "private" definiert und somit für die Unterklassen nicht sichbar.
Auch darf ich keine Methoden implementieren, um per get-Methode den Variablenwert in der jeweiligen Unterklasse anzuzeigen.
Wie soll ich das denn machen?
EDIT: Dank der Aussage von Kevin habe ich doch noch auf die Lösung kommen können.
Für alle, die es ebenfalls interessiert hier die komplette Lösung.
Klasse Alpha:
Java:
public class Alpha {
private int a;
private static int s;
public Alpha(int a)
{
this.a = a;
}
public static void setS(int s)
{
Alpha.s = s;
}
public static int getS()
{
return Alpha.s;
}
public String toString() {
return "a= " + a;
}
}
Klasse Beta:
Java:
public class Beta extends Alpha {
private int b;
public Beta(int a, int b)
{
super(a);
this.b = b;
}
public String toString() {
return super.toString() + " b= " + this.b;
}
}
Klasse Gamma:
Java:
public class Gamma extends Beta {
private int c;
public Gamma(int a, int b, int c)
{
super(a, b);
this.c = c;
}
public String toString() {
return super.toString() + " c= " + this.c;
}
}
main:
Java:
public class Klausur {
public static void main(String[] args) {
Alpha eins = new Alpha(1);
Beta zwei = new Beta(2, 2);
Gamma drei = new Gamma(3, 3, 3);
System.out.println("Objektattribute des Objekts eins der Klasse Alpha:\n" + eins.toString());
System.out.println("Objektattribute des Objekts zwei der Klasse Beta:\n" + zwei.toString());
System.out.println("Objektattribute des Objekts drei der Klasse Gamma:\n" + drei.toString());
}
}