class Schiff:CustomStringConvertible{ private var name:String="" private var laenge:Double=0.0 required init(name:String, laenge:Double){ self.name=name self.laenge=laenge } init(name:String){ self.name=name self.laenge=100 } // toString var description :String { return "Schiff: \(name) \(laenge)" } // Computed Properties var Name:String { get { return name } set { name=newValue } } var Laenge:Double { get { return laenge } set { laenge=newValue } } func drucken() { print(description) } } var schiff:Schiff = Schiff(name:"Titanic",laenge:223.4) print(schiff) schiff.name="Paula 1" // eine Datei ! print(schiff) schiff.Name = "CPU2" print(schiff) schiff.drucken() var schiff2:Schiff = Schiff(name:"Titanic2") print(schiff2) class Dampfer:Schiff{ private var anzPassagiere:Int32=0 init(name:String, laenge:Double, anzPassagiere:Int32){ self.anzPassagiere=anzPassagiere //super.init(name:name,laenge:laenge) super.init(name:name) } required init(name: String, laenge: Double) { fatalError("init(name:laenge:) has not been implemented") } // toString override var description :String { return super.description + "Dampfer: \(anzPassagiere)" } // Computed Properties var AnzPassagiere:Int32 { get { return anzPassagiere } set { anzPassagiere=newValue } } override func drucken() { print(description) } } var dampfer1:Dampfer = Dampfer(name:"Sea World", laenge:1234, anzPassagiere:5467) print(dampfer1) dampfer1.drucken()