Liebe Community
Ich habe hier ein Riesenverständnisproblem zu Vererbung und Polymorhismus
Anbei der Code:
Ausgabe
Der Hund bellt
Die Katze miaut
Was mir nicht klar ist, ist hier die Klasse Vet. Wie kann diese mit a.sound(); auf die anderen Klassen zugreifen ?
Die Klasse Vet erbt ja nichts von den Klassen Animal, Dog und Cat ? Warum kann Sie dann auf die Methoden sound() zugreifen welche in den anderen Klassen definiert sind ? Sie erbt ja nichts von diesen Klassen, also dürfte sie ja auch nicht auf deren Methoden zugreifen können ?
Ich hoffe ihr versteht was ich meine und ich danke euch für eure Hilfe.
Ich habe hier ein Riesenverständnisproblem zu Vererbung und Polymorhismus
Anbei der Code:
Java:
class Animal{
public void sound(){
System.out.println("Das Tier macht Lärm");
}
}
class Cat extends Animal{
public void sound(){
System.out.println("Die Katze miaut");
}
}
class Dog extends Animal{
public void sound(){
System.out.println("Der Hund bellt");
}
}
class Vet {
public void giveShot(Animal a){
a.sound();
}
}
public class Main {
public static void main(String[] args) {
Vet v = new Vet();
Dog d = new Dog();
Cat c = new Cat();
v.giveShot(d);
v.giveShot(c);
}
}
Ausgabe
Der Hund bellt
Die Katze miaut
Was mir nicht klar ist, ist hier die Klasse Vet. Wie kann diese mit a.sound(); auf die anderen Klassen zugreifen ?
Die Klasse Vet erbt ja nichts von den Klassen Animal, Dog und Cat ? Warum kann Sie dann auf die Methoden sound() zugreifen welche in den anderen Klassen definiert sind ? Sie erbt ja nichts von diesen Klassen, also dürfte sie ja auch nicht auf deren Methoden zugreifen können ?
Ich hoffe ihr versteht was ich meine und ich danke euch für eure Hilfe.