Vererbung

Status
Nicht offen für weitere Antworten.

miss60

Mitglied
Hallo!
hab eine Frage zur Vererbung. In untenstehendem Code kann ich die Methode drucker() der Klasse Fussballer nicht aufrufen.
Kann mir jemand sagen wieso??? Vielen Dank schon mal.

Klasse Mensch:
Code:
public class Mensch {
	
	private String Name;
	String Vorname;
	private String Geburtsdatum;
	
	public Mensch(String Name, String Vorname, String Geburtsdatum){
		this.Name=Name;
		this.Vorname=Vorname;
		this.Geburtsdatum=Geburtsdatum;
	}
	
	// Get-/Set-Methoden
	public void setName(String Name){
		this.Name=Name;
		}
	public String getName(){
		return Name;
	}
	
	public void setVorname(String Vorname){
		this.Vorname=Vorname;
		}
	public String getVorname(){
		return Vorname;
	}
	
	public String toString(){
		StringBuffer sb=new StringBuffer();
		sb.append("Name=");sb.append("\""); sb.append(Name);
		sb.append("\""); sb.append(" ");
		sb.append(Vorname);
		
		return sb.toString();
	}
	
	public void drucke(){
		System.out.println("Ich heisse "+Name);
	}
}

Klasse Fussballer:
Code:
class Fussballer extends Mensch {
	
	String Verein;
	String Position;
	int Nummer;
	
	public Fussballer(String Name, String Vorname, String Geburtsdatum, String Verein, String Position, int Nummer){
		
		super(Name,Vorname,Geburtsdatum);
		
		this.Verein=Verein;
		this.Position=Position;
		this.Nummer=Nummer;
	}
	
	
	public void setVerein(String Verein){
		this.Verein=Verein;
	}
		
	public String getVerein(){
		return Verein;
	}
	
		public String toString(){
		StringBuffer sb=new StringBuffer();
		sb.append("Name=");sb.append("\""); sb.append(Vorname);
	
		
		return sb.toString();
	}
	
	public void drucker(){
		System.out.println("das ist mein Verein: "+Verein);
	}

}

Klasse Verwaltung
Code:
public class Verwaltung{
	
	public static void main(String[] args){
		Mensch[] festus={
			
			new Mensch("Biene","Maya","20.03.1981"),
			new Fussballer("Christa","Bauer","30.01.1979","Fortuna_Duess","Angriff",8),
			new Fussballer("Tom","Forde","30.01.1979","FC_Bayern","Mittelfeld",8)};	
	
	
	
		
		for(int i=0; i<festus.length; i++){
			System.out.println(festus[i].getName());
			System.out.println(festus[i].toString());
			festus[i].drucke();
			festus[i].drucker();
		}
	}
}
 
B

Beni

Gast
Schreibfehler? Hier fehlt doch ein "r"? (aus der Klasse Mensch)
Code:
public void drucke(){
      System.out.println("Ich heisse "+Name);
   }
 

miss60

Mitglied
nein das ist so richtig: die Methode drucke() ist in Klasse Mensch und die Methode drucker() in Klasse Fussballer.

Aber kann ich denn die Methode drucker() nicht in der Klasse Verwaltung aufrufen, wenn im Array auch Menschen sind???
 
B

Beni

Gast
Nein, der Array enthält "Mensch". Dass diese Menschen auch Fussballer sein können, kannst du dort unten nicht garantieren, deshalb kannst du auch "drucker" nicht aufrufen.

Das ist wie wenn ich dir sage "Ich schicke dir eine Kiste voller Bücher, schreibe mir für jedes Buch eine Zusammenfassung, aber du darfst die Bücher nicht öffnen!"

Die Sache mit der Vererbung wäre die, dass wenn du nun in "Fussballer" die Methode nicht "drucker", sondern "drucke" genannt hättest, dann würde bei einem Aufruf von "mensch.drucke" diese neue Methode aufgerufen.
Dasist wie wenn ich dir sage "Ich schicke dir eine Kiste voller Bücher, gib mir für jedes Buch die Zusammenfassung, welche auf der Rückseite steht (für jeden Typ Buch (Krimi, Roman...) steht da was anderes))
 

SebiB90

Top Contributor
so müsste es gehen
Code:
for(int i=0; i<festus.length; i++){ 
  System.out.println(festus[i].getName()); 
  System.out.println(festus[i].toString()); 
  festus[i].drucke(); 
  if(festus[i] instanceof Fussballer) { // kann sein das das auch instance of heißt
    festus[i].drucker();
  }
}
 

Sky

Top Contributor
Du versuchst die Methode "drucker" auf einem Menschen aufzurufen (festus ist ein Mensch[])

Du kannst die Methode jedoch nur für Fussballer aufrufen. Also: gucken ob's ein Fussballer ist und falls ja einfach nach Fussballer casten und dann die Methode aufrufen:

Code:
if ( festus[i] instanceof Fussballer ) {
  ((Fussballer)festus[i]).drucker(); 
}
 

miss60

Mitglied
vielen Dank.
Wenn ich es richtig verstanden habe, muss ich bei der Vererbung also die jeweilige Methode in allen Klassen haben, damit ich über die späte Bindung auf die entsprechende Methode der Klasse zugreifen kann???
Oder eben über die beschriebene if-Abfrage nach der Klasse suchen.
Ist das so richtig?
 
B

Beni

Gast
Du musst die Methode vorallem in der Superklasse haben (hier z.B. Mensch), in den Unterklassen hast du sie dann automatisch.

Aber jop, ist richtig so.

Das if ist übrigens selten zu empfehlen, das führt meist zu viel mehr Arbeit.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
M Vererbung - Polymorphie Java Basics - Anfänger-Themen 37
L Java- Vererbung Java Basics - Anfänger-Themen 4
ineedhelpinjava Vererbung Java Basics - Anfänger-Themen 12
ineedhelpinjava Vererbung Java Basics - Anfänger-Themen 1
I JSON / XML Struktur mit Vererbung / Interfaces Java Basics - Anfänger-Themen 0
M Interface oder Vererbung? Java Basics - Anfänger-Themen 12
M Vererbung Java Basics - Anfänger-Themen 6
M Designentscheidung von Attributen/Methoden im Falle von Vererbung Java Basics - Anfänger-Themen 8
M Generics Vererbung Listen Java Basics - Anfänger-Themen 2
A Methoden Vererbung und Interface Java Basics - Anfänger-Themen 14
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
U Vererbung Java Basics - Anfänger-Themen 7
D Vererbung Java Basics - Anfänger-Themen 3
K Schleife berechnet kein Ergebnis (Vererbung) Java Basics - Anfänger-Themen 6
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
W Zur Vererbung: Wann und wie? Java Basics - Anfänger-Themen 35
H Datenkapselung, Vererbung und UML Java Basics - Anfänger-Themen 16
districon Super-Stichwort/ Vererbung Java Basics - Anfänger-Themen 3
YaU Vererbung erstellt NullPointerException? Java Basics - Anfänger-Themen 4
1 Vererbung Klassenattribute Java Basics - Anfänger-Themen 9
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
N Thema Vererbung Java Basics - Anfänger-Themen 31
A Vererbung Vererbung Übung Java Basics - Anfänger-Themen 5
B Vererbung - Sichtbarkeitsmodifikation - protected Java Basics - Anfänger-Themen 10
B Best Practice Unschlüssig ob Vererbung oder Interface Java Basics - Anfänger-Themen 2
G Java Vererbung Java Basics - Anfänger-Themen 8
Y Vererbung Konto - Anfangsprobleme Java Basics - Anfänger-Themen 7
A Vererbung Klassen im Bezug auf Auto´s Java Basics - Anfänger-Themen 18
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
M Vererbung mit Enums Java Basics - Anfänger-Themen 8
Kirby.exe Vererbung im Detail erklärt? Java Basics - Anfänger-Themen 9
N Modellierung, vererbung, Java Basics - Anfänger-Themen 163
M Fehlendes Verständnis für dynamische Bindung und Vererbung Java Basics - Anfänger-Themen 13
W OOP Vererbung im Computerspiel Java Basics - Anfänger-Themen 7
J Probleme mit Vererbung Java Basics - Anfänger-Themen 4
I Vererbung Java Basics - Anfänger-Themen 13
W OOP Vererbung und Problem bei Zählschleife in einer Methode Java Basics - Anfänger-Themen 10
W Methoden Verständnisfrage Vererbung von Methoden Java Basics - Anfänger-Themen 14
V Vererbung Java Basics - Anfänger-Themen 2
J Frage zur Vererbung Java Basics - Anfänger-Themen 1
J Vererbung Java Basics - Anfänger-Themen 3
U Was löst meine NullPointerException aus? (Vererbung) Java Basics - Anfänger-Themen 12
O Vererbung Ueben mit kleiner Datenstruktur von Räumen Java Basics - Anfänger-Themen 10
O Umgang mit Vererbung verstehen Java Basics - Anfänger-Themen 4
A Vererbung/Interfaces/Generics Java Basics - Anfänger-Themen 12
O Vererbung änderung des Konstruktors Java Basics - Anfänger-Themen 8
L Vererbung Java Basics - Anfänger-Themen 5
E HashMap+Vererbung Java Basics - Anfänger-Themen 11
E Vererbung super-Methoden Aufruf Java Basics - Anfänger-Themen 3
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
A Objekterstellung bei der Vererbung Java Basics - Anfänger-Themen 7
P Vererbung Warum funktioniert die Vererbung hier nicht Java Basics - Anfänger-Themen 14
S Vererbung Java mehrfach Java Basics - Anfänger-Themen 10
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
A Klassen Vererbung privater Methoden und Member Java Basics - Anfänger-Themen 12
A Konstruktoren Vererbung Java Basics - Anfänger-Themen 3
ReinerCoder Vererbung von JFrame in einer Klasse entfernen Java Basics - Anfänger-Themen 5
W Vererbung, abstract und Konstruktoren Java Basics - Anfänger-Themen 30
J Vererbung und Methodenaufruf Java Basics - Anfänger-Themen 11
G Polymorphie, Vererbung, statischer Typ, Laufzeittyp Java Basics - Anfänger-Themen 2
H Vererbung mit private instanzvariablen Java Basics - Anfänger-Themen 9
S Vererbung Funktionsweise Code zur Vererbung Java Basics - Anfänger-Themen 1
C Methoden Vererbung private Attribute/public Methoden Java Basics - Anfänger-Themen 4
S Verständnis Vererbung Java Basics - Anfänger-Themen 3
D JavaFX Vererbung Java Basics - Anfänger-Themen 2
U Vererbung Generizität und Vererbung Java Basics - Anfänger-Themen 4
A Vererbung bei Klassen mit Objekt der Klasse im Konstruktor Java Basics - Anfänger-Themen 4
K Vererbung Octagon von Circle Java Basics - Anfänger-Themen 0
B Hilfe bei Vererbung Java Basics - Anfänger-Themen 2
D Vererbung Frage zum Klassenaufbau mit Vererbung Java Basics - Anfänger-Themen 1
T Vererbung und interface. Java Basics - Anfänger-Themen 1
S Gehaltsberechnung (Vererbung, abstrakte Methoden) Java Basics - Anfänger-Themen 6
S Vererbung Java Basics - Anfänger-Themen 1
F Vererbung in zwei Richtungen? Java Basics - Anfänger-Themen 14
D Vererbung / Polymorphie Java Basics - Anfänger-Themen 5
O Vererbung Java Basics - Anfänger-Themen 5
MiMa Vererbung Theorie OK, Praxis ?? Java Basics - Anfänger-Themen 4
Arif Vererbung Vererbung Variablen überschreiben Java Basics - Anfänger-Themen 1
C Vererbung - Ausgaben bestimmen Java Basics - Anfänger-Themen 6
S Vererbung Java Basics - Anfänger-Themen 10
L Setter und Getter/Vererbung Java Basics - Anfänger-Themen 6
C Konstruktoren und Vererbung Java Basics - Anfänger-Themen 2
J Kleinere Frage zur Vererbung/Objekterzeugung Java Basics - Anfänger-Themen 2
G Vererbung Java Basics - Anfänger-Themen 12
J Vererbung privater Variablen Java Basics - Anfänger-Themen 7
J Vererbung Vererbung von Methoden Java Basics - Anfänger-Themen 6
B Vererbung Java Basics - Anfänger-Themen 12
K Vererbung (super) Java Basics - Anfänger-Themen 2
A ArrayQueue mit Exceptions und Vererbung Java Basics - Anfänger-Themen 3
J Java: static bei Vererbung Java Basics - Anfänger-Themen 5
C Vererbung Java Basics - Anfänger-Themen 4
L Vererbung Java Basics - Anfänger-Themen 3
J Klassenorganisation | Vererbung Java Basics - Anfänger-Themen 1
B Vererbung Vererbung Java Basics - Anfänger-Themen 2
N Generics Vererbung Wildcard Interface Java Basics - Anfänger-Themen 8
A Benötige Hilfe bei Vererbung Java Basics - Anfänger-Themen 1
M Anfängerprobleme mit Vererbung Java Basics - Anfänger-Themen 27
J Vererbung Java Basics - Anfänger-Themen 9
F Vererbung von Attributen zwischen zwei Klassen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben