// }
// didSet{
//
// print("旧名\(oldValue)")
//
// }
//
//}
//创建一个基类Person(5分)
//在基类中定义方法奔跑run(5分)
//run内实现打印字符串“向前全速奔跑”(5分)
class Person{
func run(){
print("想前全速奔跑");
}
}
let na = Person.init()
na.run()
//创建一个继承自Person的Teacher类(5分)
//在Teacher类中定义方法teach(5分)
//在teach函数中实现在控制台打印字符串“上课要迟到了”(5分)
//在teach函数中调用其父类的run函数(5分)
class Teacher: Person {
func teach(){
print("上课要迟到了")
super.run()
}
}
let naa = Teacher.init()
naa.teach()
//创建一个类Student并继承与Person(5分)
//定义属性name (5分)
//在Student中监听属性name的setter和getter(5分)
//在Student类中重写父类的run方法,实现打印字符串“体育课上跑了800米”(5分)
//在Student类中定义一个只读的属性height,用来表示学生的身高“175cm”(5分)
//在Student类中懒加载一个属性age用来表示学生的年龄“18岁”(5分)
//为Student类定一个构造函数,在函数内为所有属性赋值(5分)
class Student: Person {
var name:String = "小明"{
willSet(new){
print("新的名字:\(new)")
}
didSet{
print("旧的名字:\(oldValue)")
}
}
override func run() {
print("体育课上跑了800米")
}
var height : String{
return "175cm"
}
lazy var age:String="18岁"
init(name:String,age:String) {
super.init()
self.name=name
self.age=age
}
//在Student类中定义一个show方法,用来打印学生信息(5分)
//show函数限定是公开访问的 (5分)
//重写Student类的析构函数,在函数内实现所有属性的清空,并打印“调用了析构函数”(5分)
//添加功能、方法注释(5分)
public func show(){
print("姓名:\(name),年龄:\(age),身高:\(height)")
}
deinit {
self.name=""
self.age=""
print("调用了析构函数")
}
}
var stu:Student? = Student(name: "小王", age: "20岁")
stu!.name = "小刚"
//stu.name = "小王"
stu!.run()
print(stu!.height)
stu!.show()
stu = nil
dada
猜你喜欢
转载自blog.csdn.net/weixin_43480652/article/details/84934933
今日推荐
周排行