美文网首页
swift 4.0 继承 构造器

swift 4.0 继承 构造器

作者: 透支未来 | 来源:发表于2018-01-26 15:18 被阅读18次

继承

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")
       
    }

   }

相关文章

网友评论

      本文标题:swift 4.0 继承 构造器

      本文链接:https://www.haomeiwen.com/subject/yhcwaxtx.html