//声明类 class Person { var name :String var age:Int //若声明变量时变量没初始化需要在init中为其初始化,若声明时都已经初始化则不需要提供init init(name:String,age:Int) { self.age=age self.name=name } func getName(def:String) -> String { return name } func toString() { print("self: "+self.name+" \(self.age)") } } // 实例化类,参数由init决定 var person = Person(name:"xiaoming",age:10) var name=person.getName(def: "defname") print(name) person.name="xiaohong" name=person.getName(def: "defname") print(name) //继承 class Student: Person { var stuId:String="00" //若重写init则需要显式调用父类init init() { super.init(name: "defname",age: 10) } //方法重写 override func toString() { print("self: "+self.stuId+" "+String(self.age)+" "+self.name) } //析构函数 deinit { print("deinit.....") } } var stu = Student() stu.toString()