swift语法3

import Foundation

// 创建一个基类Person
// 在基类中定义方法奔跑run
// run内实现打印字符串“向前全速奔跑”
class Person{

//var weight: Double
//  init(weight:Double) {
//
//    self.weight = weight
// }
func run(){
    
    print("向前全速奔跑")
}

}

// 创建一个继承自Person的Teacher类
// 在Teacher类中定义方法teach
// 在teach函数中实现在控制台打印字符串“上课要迟到了”
// 在teach函数中调用其父类的run函数
class Teacher: Person {

func teach(){
    
    print("上课要迟到了")
    super.run()
}

}

// 创建一个类Student并继承与Person
// 定义属性name
// 在Student中监听属性name的setter和getter
// 在Student类中重写父类的run方法,实现打印字符串“体育课上跑了800米”
// 在Student类中定义一个只读的属性height,用来表示学生的身高“175cm”
// 在Student类中懒加载一个属性age用来表示学生的年龄“18岁”
// 为Student类定一个构造函数,在函数内为所有属性赋值
// 在Student类中定义一个show方法,用来打印学生信息
// show函数限定是公开访问的
// 重写Student类的析构函数,在函数内实现所有属性的清空,并打印“调用了析构函数”
class Student: Person {

var name:String = "小明"{
    
    willSet(newValue){
        
        print("新名字:\(newValue)")
    }
    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(weight: 66.5)
    super.init()
    self.name = name
    self.age = age
}
//打印学生信息
public func show(){
    
    print("学生的姓名是:\(name),学生的年龄:\(age),学生的身高:\(height)")
}
//析构函数
deinit {
    
    self.age = ""
    self.name = ""
    print("调用了析构函数")
}

}

let per = Person()
per.run()

let tea = Teacher()
tea.teach()

var stu:Student? = Student(name: “大白”, age: “22岁”)
stu!.name = “小黑”
stu!.run()
stu!.show()

stu = nil

猜你喜欢

转载自blog.csdn.net/weixin_43656435/article/details/85835542
今日推荐