Vererbung und Polymorphismus

Neue Frage »

Auf diesen Beitrag antworten »
Java_Beginner Vererbung und Polymorphismus

Meine Frage:
Hi Leute,

ich habe das nachfolgende Programm geschrieben. Es gibt eine Klasse Tier und von der Klasse Tier erbt die Klasse Katze. Erst einmal die Frage bis hierhin, ob der Code soweit stimmt. Habe ein Attribut mit Absicht private und eines protected gemacht, dass ich auch mit getMethoden() arbeiten muss. Meine zweite Frage wäre, wie ich hier dann Polymorphismus umsetzen würde? Polymorphismus bedeutet ja Vielgestaltigkeit und wird erst zur Laufzeit ausgeführt? Also muss die Anweisung um Polymorphismus durchzuführen in die main-Funktion?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
public class Main
{
    public static void main (String[]args)
    {
        Katze katze = new Katze ("grau",4.2F,4);
        katze.print();
    }
}

class Tier
{
    private String farbe;
    protected float gewicht;
    
    public Tier (String farbe, float gewicht)
    {
        this.farbe = farbe;
        this.gewicht = gewicht; 
    }

    public String getFarbe ()
    {
        return farbe; 
    }
}

class Katze extends Tier
{
    private int pfoten; 
    public Katze (String farbe, float gewicht, int pfoten)
    {
        super(farbe,gewicht); 
        this.pfoten = pfoten; 
    }

    public void print ()
    {
        System.out.println("Die Farbe ist: " +getFarbe() + " und das Gewicht 
        betraegt: " + gewicht + " kg und hat " + pfoten + " Pfoten");
    }
}





Meine Ideen:
Vielen Dank :-)
 
Auf diesen Beitrag antworten »
Java_Beginner

Programmiersprache ist Java :-)
Auf diesen Beitrag antworten »
eulerscheZahl

Es funktioniert schonmal.
Ersetzen wir doch die Methode print() durch das hier:
code:
1:
2:
3:
4:
public String toString() {
	return "Die Farbe ist: " + getFarbe() + " und das Gewicht betraegt: "
			+ gewicht + " kg und hat " + pfoten + " Pfoten";
}


Und in der main Funktion schreiben wir
code:
1:
2:
Tier tier = new Katze("grau", 4.2F, 4);
System.out.println(tier);


Würdest du println für ein normales Tier aufrufen (also new Tier("grau", 4.2f)), würde die toString() Methode von Object verwendet werden. Die wird erst in Katze überschrieben. Obwohl wir eine Referenz auf ein Tier übergeben, wird aber die toString() Methode der Katze aufgerufen.
Auf diesen Beitrag antworten »
Karlito

Thema verschoben -> Softwaretechnologie...
 
Auf diesen Beitrag antworten »
Java_Beginner

Vielen Dank für die Korrektur und Erklärung :-)
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »