Guten Tag,
ich bin ein völliger Neuling in Java, habe aber bereits einiges an Programmiererfahrung in PHP gesammelt. Nun gibt es in PHP keine Variablen Deklaration, etc., was mir nun den Umstieg ein wenig erschwert.
Mein Problem ist, denke ich, ziemlich simpel:
Wenn ich eine Variable mit einer Elternklasse deklariere, scheine ich nur Zugriff auf die Eigenschaften und Methoden eben jener Elternklasse zu haben. Natürlich wird jeder etwas weiter fortgeschrittene Java Entwickler mit diesem Verhalten rechnen, mich verwirrt es.
Hier ein Beispiel. Ich weiß nicht, ob es etwas taugt:
Warum enthält banana.color plötzlich "undefined"? Natürlich weil es wohl eine Variable mit dem Typ Fruit ist. Aber wie mache ich es sonst, wenn ich im Vorhinein genau sagen kann, welchen Untertyp eine Variable hat? Das Selbe mit dem Array.
Ich hoffe, irgendwer kann mir das erklären. Mir fehlen leider die Stichwörter für den erfolgreichen Einsatz einer Suchmaschine. Seid bitte nett, ich bin wirklich absolut neu was Typisierung betrifft.
lg
elf
ich bin ein völliger Neuling in Java, habe aber bereits einiges an Programmiererfahrung in PHP gesammelt. Nun gibt es in PHP keine Variablen Deklaration, etc., was mir nun den Umstieg ein wenig erschwert.
Mein Problem ist, denke ich, ziemlich simpel:
Wenn ich eine Variable mit einer Elternklasse deklariere, scheine ich nur Zugriff auf die Eigenschaften und Methoden eben jener Elternklasse zu haben. Natürlich wird jeder etwas weiter fortgeschrittene Java Entwickler mit diesem Verhalten rechnen, mich verwirrt es.
Hier ein Beispiel. Ich weiß nicht, ob es etwas taugt:
Java:
public abstract class Fruit
{
public String color = "undefined";
}
public class Banana extends Fruit
{
public String color = "yellow";
}
public class Apple extends Fruit
{
public String color = "red";
}
public class FruitApp
{
public static void main(String[] args)
{
// Store an unknown Fruit
Fruit fruit = new Banana();
// Store a Banana
Banana banana = new Banana();
// Store an Apple
Apple apple = new Apple();
// Store all kinds of fruits
Fruit[] fruitbowl = {banana, apple};
// undefined
System.out.print(fruit.color+"\n");
// yellow
System.out.print(banana.color+"\n");
// undefined
System.out.print(fruitbowl[0].color+"\n");
// undefined
System.out.print(fruitbowl[1].color+"\n");
}
}
Warum enthält banana.color plötzlich "undefined"? Natürlich weil es wohl eine Variable mit dem Typ Fruit ist. Aber wie mache ich es sonst, wenn ich im Vorhinein genau sagen kann, welchen Untertyp eine Variable hat? Das Selbe mit dem Array.
Ich hoffe, irgendwer kann mir das erklären. Mir fehlen leider die Stichwörter für den erfolgreichen Einsatz einer Suchmaschine. Seid bitte nett, ich bin wirklich absolut neu was Typisierung betrifft.
lg
elf
Zuletzt bearbeitet: