Was habe ich davon mit einem Datentyp verschiedene Instanzen zu haben?

Zidinjo

Mitglied
Hallo meine Freunde,

ich habe kurz eine Frage bezüglich Java.

Ich habe eine Klasse Person, Student und Ai_Student.

Student erbt von Person und Ai_Stundent von Student.

jetzt schreibe ich in Java:
Java:
Person peter = new Student();
Person Marvin = new Ai_Student();
Person Schnick = new Person();

Was bringen mir die verschiedenen Instanzen?
 

Saheeda

Top Contributor
Erstmal haben die drei denselben statischen Typ "Person", damit könntest du z.B. alle in einer Liste speichern oder alle Methoden, die durch Person bereit gestellt werden aufrufen.

Sie haben aber auch verschiedene dynamische Typen und können sich damit zur Laufzeit verschieden verhalten. Definierst du z.B. eine Methode "machWas()" in Person, überschreibst diese aber in Student und Ai_Student, so wird derselbe Methodenaufruf in allen dreien zu verschiedenen Ergebnissen führen.

https://bruck.me/2014/01/08/java-statischer-vs-dynamischer-typ/
 

Tobse

Top Contributor
Geht es dir jetzt um die Typen von Variablen oder darum, was du mit Objekten anstellen kannst?

Beispiel: Du hast auchnoch eine Klasse "Höhenmesser", welche überprüft, ob jemand groß genug für eine Achterbahn ist und eine Klasse "Dozent", welche an der Universität Vorlesungen "verteilt".
Der Höhenmesser arbeitet mit Menschen/Personen. Für seine Funktionaliät ist es 100% egal, ob diese Person jetzt studiert oder ob sie in Rente ist.
Der Dozent Unterrichtet ggf. ein Fach, welches in mehreren Studiengängen relevant ist, z.B. Mathemathik. Er kann daher nur mit Studenten arbeiten; es ist aber auch ihm egal, welchen Studiengang die Studenten genau absolvieren.

Die Instanzen von Person, Student und Ai_Student sind in deinem Programm das Äquivalent zu Menschen. Alle 3, sowohl Peter, Marvin als auch Schnick können sich für die Achterbahn anstellen (aber Marvin ist vielleicht zu klein dafür). Die Vorlesung kann Schnick aber nicht besuchen, er ist kein Student.

P.S.: Das war jetzt die Spitze vom Eisberg. Das Thema nennt sich Polymorphie und ist relativ umfangreich.
 
Zuletzt bearbeitet:

Zidinjo

Mitglied
Puh, gar nicht so einfach. Wenn ich z.b Felder wie alter und Name bei Person in der Klasse habe und dann eine Instanz mit dem Datentyp Person = new Student(); mache, dann hat diese Instanz alle Methoden & Felder von dem Datentyp Person. Aber der Datentyp Person hat keine einzigen Methoden oder Felder von der Klasse Student, da ich ja nur eine Instanz davon habe. Abver wenn ich jetzt z.b Student fred = new Student() mache und Student von der Klasse Person geerbt hat, kann ich auf alle Methoden & Felder der Klasse Person und Student zugreifen oder ?
 

Tobse

Top Contributor
Richtig, so ist es. Deine Formulierung ist aber noch nicht ganz richtig:
Mit Person MisterX = new Student() hast du eine Variable vom Typ Person und eine Instanz von Student. Der Typ der Variable verursacht die Limitierung.
 

Tobse

Top Contributor
Mit Limitierung habe ich gemeint, dass du im Fall Person MisterX = new Student() nicht auf alle Methoden des Objekts zugreiffen kannst, weil die Variable vom Datentyp Person ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Habe ich die Aufgabe richtig gelöst? Java Basics - Anfänger-Themen 3
berserkerdq2 Habe ein Spiel entwickelt, dass immer in der 4 Runde einen cast-Fehler erhält Java Basics - Anfänger-Themen 3
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
berserkerdq2 Wann soll ich den Stream schließen, wenn ich das in einer Methode habe? Java Basics - Anfänger-Themen 8
O Ich habe einen String und soll mit matches schauen, ob ein Buchstabe zu einer geraden ANzahl im String vorkommt, wie soll das gehen? Java Basics - Anfänger-Themen 7
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
I DecimalFormat in Zahlenformat für Währung, habe 7,99, bekomme aber 7 Java Basics - Anfänger-Themen 4
M Was habe ich hier falsch, dass wenn ich z.B.: 11 eingebe mir false zurück gegeben wird? Java Basics - Anfänger-Themen 2
Kapfski Was habe ich falsch gemacht? Hilfe! Java Basics - Anfänger-Themen 17
T Ich habe eine Variabel die nicht Methoden übergreifend ist. Kann mir jemand Helfen :) Java Basics - Anfänger-Themen 5
I Ich habe ein Problem Java Basics - Anfänger-Themen 3
F Habe ein problem mit dem ActionListener Java Basics - Anfänger-Themen 3
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1
A Ich habe das Gefühl etwas grundlegendes falsch zu machen Java Basics - Anfänger-Themen 6
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
E Habe ein Problem Java Basics - Anfänger-Themen 10
JavaNewbie2.0 Habe ein frage wie man etwas macht. Java Basics - Anfänger-Themen 13
A Methoden Habe ein Problem bei folgender Programmierung Java Basics - Anfänger-Themen 15
B Erste Schritte Way of life ohne import - Habe Beispiel, macht Unfug Java Basics - Anfänger-Themen 21
J Java: Was habe ich falsch gemacht? Java Basics - Anfänger-Themen 4
Thallius String und \n. Habe wohl gerade Brett vorm Kopf Java Basics - Anfänger-Themen 13
G Umgebungsvariable Hallo Ich habe ein Problem mit der Umgv Java Basics - Anfänger-Themen 9
F String.replaceAll() funktioniert nicht richtig oder habe ich den falschen Regex?? Java Basics - Anfänger-Themen 3
C JDK installieren Habe ein Problem bei Java install Java Basics - Anfänger-Themen 4
J Habe problem mit Java Java Basics - Anfänger-Themen 2
S Habe mist gebaut.. ^^ Java Basics - Anfänger-Themen 4
I Habe keine Idee was ich als Anfänger programmieren kann. Java Basics - Anfänger-Themen 4
K Habe ich ein Synchronisationsproblem ? Java Basics - Anfänger-Themen 25
B Warum kommt immer die 0 als Ergebnis? Was habe ich falsch gemacht? Java Basics - Anfänger-Themen 18
E Habe java. Datei wie ausführen ? Java Basics - Anfänger-Themen 9
B Habe einen Fehler Java Basics - Anfänger-Themen 3
G Habe ein Problem mit syn-Editor ( beim compilieren) Java Basics - Anfänger-Themen 4
U Habe meine .class files gelöscht. Java Basics - Anfänger-Themen 3
S Taschenrechner programmieren und habe null Ahnung Java Basics - Anfänger-Themen 22
S Ich habe ein kleines Problem mit meinem Übungsprogramm Java Basics - Anfänger-Themen 7
G habe ein Catch problem Java Basics - Anfänger-Themen 7
X Habe Set, möchte List Java Basics - Anfänger-Themen 3
W Applet starten - ich habe keine ahnung Java Basics - Anfänger-Themen 17
G Habe bei String kein split()? Java Basics - Anfänger-Themen 7
K Brauche nur Tipps Leute habe keine plan wie ich dass machen Java Basics - Anfänger-Themen 4
R Habe ein Problem und eine Frage Java Basics - Anfänger-Themen 19
P Habe da ein Problem mit Arrays! Bitte um Hilfe Java Basics - Anfänger-Themen 2
A Gleichungssystem: Ich habe es probiert! Java Basics - Anfänger-Themen 4
H habe keine main Java Basics - Anfänger-Themen 9
J Habe gerade erst mit Java begonnen - Frage zu JTabbedPane Java Basics - Anfänger-Themen 3
ven000m Rauten "Stern" zeichnen, hälfte habe ich zweite? Java Basics - Anfänger-Themen 2
G Habe Fragen zu der Programmierung eines Matheprogramms Java Basics - Anfänger-Themen 5
T HILFE! Ich habe keinen Plan mehr! Java Basics - Anfänger-Themen 16
M Habe ein Problem mit dem Konstruktor!Wer kann helfen? Java Basics - Anfänger-Themen 15
Z Warum habe ich eine ArrayIndexOutOfBoundsException? Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Argument in Integer verwandeln und das Doppelte davon printen Java Basics - Anfänger-Themen 9
M 2 Stellen in einem Array vergleichen und bei übereinstimmen eine davon ersetzen Java Basics - Anfänger-Themen 1
J Was genau davon ist Anweisung, was Deklaration? Java Basics - Anfänger-Themen 2
N nicht editierbare combobox davon oberstes element auslesen? Java Basics - Anfänger-Themen 5
B MaskFormatter soll alle zeichen zulassen davon aber nur 50 Java Basics - Anfänger-Themen 5
Z Combo mit 2 Variablen. Eine davon nicht sichtbar. Java Basics - Anfänger-Themen 7
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 23
Zrebna Fragen zu einem Klassendiagramm Java Basics - Anfänger-Themen 8
S HashMap mehrere Keys zu einem Value Java Basics - Anfänger-Themen 3
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
F 2x 16bit Werte zu einem 32bit und dann splitten mit 0xb Java Basics - Anfänger-Themen 1
J JSON mit einem JPanel Java Basics - Anfänger-Themen 3
F Einem GIT repository ein Projekt hinzufügen Java Basics - Anfänger-Themen 1
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
J Auf einem JLabel Linien Malen Java Basics - Anfänger-Themen 1
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
Kumora ArrayIndexOutOfBoundsException bei einem Sortierverfahren Java Basics - Anfänger-Themen 2
I Viereck / Rechteck Prüfung innerhalb einem bestimmten Bereich Java Basics - Anfänger-Themen 2
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
J Fehlerbehandlung an einem Beispiel Java Basics - Anfänger-Themen 8
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
I Dateigröße von einem InputStream oder byte[] bekommen Java Basics - Anfänger-Themen 2
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
S Algorithmus entwicklen, der zu einem gegebenen Datum die Jahreszeit ermittelt Java Basics - Anfänger-Themen 13
B In einem Thread Endlosschleife beenden Java Basics - Anfänger-Themen 19
A Elemente in einem Array Java Basics - Anfänger-Themen 5
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
berserkerdq2 Wie gebe ich den Pfad zu einer Datei an, die in einem Ordner in Eclipse ist? Java Basics - Anfänger-Themen 1
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
L Gridmuster in einem Array Java Basics - Anfänger-Themen 2
D spezifische Knoten in einem Baum zählen Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben