let per:Person = Person()
per.eat()
let te:Teacher = Teacher()
te.teach()
var stu:Student? = Student(age: "15", name: "小明" )
stu!.eat()
stu!.show()
stu!.name = ""
stu = nil
class Student: Person {
//创建一个类Student并继承与Person,定义属性name,在Student中监听属性name的setter和getter
var name:String = "打我" {
willSet(oldName){
print("现在的值\(oldName)")
}
didSet{
print("原来的值\(oldValue)")
}
}
//
// 在Student类中重写父类的eat方法,打印“吃了早餐”
override func eat() {
print("吃了早餐")
}
// 在Student类中定义一个只读属性weight,体重“70kg”
var weight:String{
get{
return "70kg"
}
set{
}
}
// 在Student类中y一个属性age用来年龄“22岁”,为Student类定一个构造函数,在函数内为所有属性赋值
lazy var age:String = "22岁"
init(age:String,name:String) {
super.init()
self.name = name
self.age = age
}
// 在Student类中定义一个show方法,用来打印学生信息,函数是公开访问的
func show() {
print("学生的信息\(age),\(name),\(weight)")
}
// 重写Student类的析构函数,在函数内实现所有属性的清空,并打印“调用了析构函数”
deinit {
print("调用了析构函数")
}
}
网友评论