Hallo,
und wieder ein Anfänger mit einer Frage zu Klassen. Sorry!
In meinem Beispiel habe ich eine Super- und ein Subklasse angelegt. In der Superklasse habe ich Properties wie den Vor-, Nachnamen oder auch das Alter. Folgend erstelle ich mit 'Student' eine Subklasse von 'nameDerKlasse'. Und darin führe ich zwei Properties auf, die ich jetzt mal eher einem Studenten zuordne: Die Matrikelnummer und das Fach.
Aber: Wenn ich in der Subklasse die Initialisierung durchführe, warum muss ich dann bereits im Aufruf die Properties der Superklasse an den Initializer der Subklasse übergeben, um sie dann anschließend mit dem 'super.init' Statement noch ein weiteres Mal aufzuführen.
Ich weiß zwar nun dass man das so macht. Aber ich würde gerne verstehen warum das so ist. Denn mir erschließt sich der Sinn dieser Vererbung nicht. Ändere ich etwas in der Superklasse, passt es doch auch schon nicht mehr in der Subklasse. Was hat das also mit "Vererbung" zu tun? Und da ich die Subklasse ja wie ihre Superklasse auch einzeln instanziere, kann ich doch direkt auch eine neue Superklasse erstellen. Oder?!
Ich habe keine Praxiserfahrung, vielleicht stellt sich diese Frage dann nicht. Aber mir fällt als Einsteiger einfach kein Grund ein, warum ich mir solche Strukturen schaffen sollte, die ich akribisch überwachen muss.
Bin für Hilfe sehr dankbar! Vielleicht begreife ich´s dann.
Alles anzeigen
und wieder ein Anfänger mit einer Frage zu Klassen. Sorry!
In meinem Beispiel habe ich eine Super- und ein Subklasse angelegt. In der Superklasse habe ich Properties wie den Vor-, Nachnamen oder auch das Alter. Folgend erstelle ich mit 'Student' eine Subklasse von 'nameDerKlasse'. Und darin führe ich zwei Properties auf, die ich jetzt mal eher einem Studenten zuordne: Die Matrikelnummer und das Fach.
Aber: Wenn ich in der Subklasse die Initialisierung durchführe, warum muss ich dann bereits im Aufruf die Properties der Superklasse an den Initializer der Subklasse übergeben, um sie dann anschließend mit dem 'super.init' Statement noch ein weiteres Mal aufzuführen.
Ich weiß zwar nun dass man das so macht. Aber ich würde gerne verstehen warum das so ist. Denn mir erschließt sich der Sinn dieser Vererbung nicht. Ändere ich etwas in der Superklasse, passt es doch auch schon nicht mehr in der Subklasse. Was hat das also mit "Vererbung" zu tun? Und da ich die Subklasse ja wie ihre Superklasse auch einzeln instanziere, kann ich doch direkt auch eine neue Superklasse erstellen. Oder?!
Ich habe keine Praxiserfahrung, vielleicht stellt sich diese Frage dann nicht. Aber mir fällt als Einsteiger einfach kein Grund ein, warum ich mir solche Strukturen schaffen sollte, die ich akribisch überwachen muss.
Bin für Hilfe sehr dankbar! Vielleicht begreife ich´s dann.
Quellcode
- class nameDerKlasse{
- var vorname: String
- var nachname: String
- var alter: Int
- init(vorname: String, nachname: String, alter: Int) {
- self.vorname = vorname
- self.nachname = nachname
- self.alter = alter
- }
- }
- class Student: nameDerKlasse{
- var matrikel: Int
- var fach: String
- init(matrikel: Int, fach: String, vorname: String, nachname: String, alter: Int) {
- self.matrikel = matrikel
- self.fach = fach
- super.init(vorname: vorname, nachname: nachname, alter: alter)
- }
- }