Vererbung Ein Verständnisproblem bei Vererbung

JDownHD

Mitglied
Hallo,

ich habe mir die im Anhang befindliche Aufgabenstellung vorgenommen und habe in kleines Problem:
Mein Code:
Java:
class Auto{
	private String typ;
	private int achsenanzahl=2;
	
	public Auto(String typ){
		setTyp(typ);
	}
	
	public void setTyp(String typ){
		this.typ=typ;
	}
	public void setAchsenanzahl (int achsenanzahl){
		this.achsenanzahl = achsenanzahl;
	}
	public String getTyp(){
		return typ;
	}
	public int getAchsenanzahl(){
		return achsenanzahl;
	}
	public void info(){
		System.out.print("\nTyp: "+typ);
	}
}

Java:
class Lkw extends Auto{
	int achsenzahl;
	public Lkw(String typ, int achsenzahl){
		super(typ);
		setAchsenzahl(achsenzahl);
	}
	
	public void setAchsenzahl(int achsenzahl){
		switch(achsenzahl){
			case 2:
				this.achsenzahl=achsenzahl;
				break;
			case 4:
				this.achsenzahl=achsenzahl;
				break;
			case 6:
				this.achsenzahl=achsenzahl;
				break;
			default:
				achsenzahl=0;
		}
	}
	
	public void info(){
		System.out.print("\nTyp: "+typ+" hat "+achsenzahl+" Achsen");
	}
}

Mein Hauptproblem ist, dass ich nicht verstehe warum bzw. wie ich die Aufgabe lösen soll, wenn in der Klasse Auto die Attribute auf Private gesetzt sind!

Und mich würde Interessieren, ob es eine elegantere Lösung für den 2. Aufgabenteil gibt! Und wie diese aussehen würde;)
 

Anhänge

  • Aufgabe 7.jpg
    Aufgabe 7.jpg
    61,8 KB · Aufrufe: 31

njans

Top Contributor
Du kannst in LKW zwar nicht die attribute direkt ansprechen, aber du kannst die Getter/Setter verwenden:
Java:
setTyp(String typ)
getTyp()
...
 
H

hüteüberhüte

Gast
Der switch-case sieht i.O. aus, hätte es auch so gemacht, nur die Aufgabenstellung nicht ganz gelesen.
 
H

hüteüberhüte

Gast
Java:
if (achsen >= 2 && achsen <= 6 && achsen % 2 == 0) {

} else {

}

kann man machen...
 
H

hüteüberhüte

Gast
Die Achsen sind doch das Teil zwischen zwei Rädern. :D Stimmt doch so oder net?
 

JDownHD

Mitglied
Sehr gut, jetzt habe ich es Verstanden!

DANKE:toll:
Jetzt werde ich wohl eher mal zwei Zeilen lesen und nicht sofort solche Fragen stellen ;)
 

Neue Themen


Oben