Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
--- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
---- Softwaretechnik (http://www.informatikerboard.de/board/board.php?boardid=18)
----- Vererbung und Polymorphismus (http://www.informatikerboard.de/board/thread.php?threadid=2680)


Geschrieben von Java_Beginner am 09.12.2015 um 21:33:

  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 :-)



Geschrieben von Java_Beginner am 09.12.2015 um 21:34:

 

Programmiersprache ist Java :-)



Geschrieben von eulerscheZahl am 10.12.2015 um 07:13:

 

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.



Geschrieben von Karlito am 10.12.2015 um 07:23:

 

Thema verschoben -> Softwaretechnologie...



Geschrieben von Java_Beginner am 10.12.2015 um 20:10:

 

Vielen Dank für die Korrektur und Erklärung :-)


Forensoftware: Burning Board, entwickelt von WoltLab GmbH