继承
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
var myCar = Car()
myCar.scope = "陆地"
myCar.move()
}
}
//final 关键字。不能被继承 如果父类不想被继承加上final关键字
class Transport {
var scope = ""
func move() {
print("交通工具在移动")
}
}
class Car: Transport {
override func move() {
print("汽车在移动")//获取到交通工具类的属性 重写父类的方法
}
}
构造和析构
//一旦子类中创建了自己的指定构造器后,将不能再使用父类的构造器 并且子类中的指定构造器声明中必须要调用父类的某个构造器
import UIKit
struct Example {
var str = "hello"
// init(str:String) //系统会自动生成一个构造器 并且这个构造器是隐藏的
}
class Transport {
var scope:String = ""
init(){} //无参数的指定构造器
init(scope:String) {
self.scope = scope //带一个参数的构造器
}
}
class Car: Transport {
var wheel = "大白"
init(scope:String,wheel:String) {
super.init() //调用父类构造器
self.wheel = wheel
self.scope = scope
}
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// var myCar = Car() //使用父类的无参构造器
// var myNewCar = Car(scope: "陆地") //调用父类的另一个构造器
var myCar = Car(scope: "陆地", wheel: "米其林")
var showTransport = Transport(scope:"陆地") //用构造器初始化类
print(showTransport.scope)
let image = UIImage(named: "test")
}
}