Swift3.0 構造函數(重寫)

1.創建Person類文件,繼承NSObject
2.創建Student類文件,繼承自Person(父類)
3.在ViewController中實現以下方法

/**
 在swift的同一個項目中(同一個命名空間下),所有的類都是共享的,可以直接訪問,不需要import
 所有對象的屬性 var,都可以直接訪問到
 */

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        //實例化 Person
        //()-> alloc init
        //Swift中對應一個函數 init()構造函數
        //作用 : 給成員變量分配空間,初始化成員變量
//        let p = Person()
        
        //子類繼承父類的方法與屬性
        let s = Student()
        //name 歸屬于 Student
        print(s.name + "-----" + s.no)
    }
}

4.在Person(父類)中實現以下方法

/**
 1.給自己的屬性分配空間并設置初始值
 2.調用父類構造函數,給父類屬性分配空間,并設置初始值
    NSObject沒有屬性,只有一個成員變量 'isa'
 與OC方法相反
 */

class Person: NSObject
{
    var name :String
    
    //重寫Person的構造函數
    //重寫 -> 父類這個方法,自雷重寫實現,需要override關鍵字
    override init()
    {
        print("Person init()")
        
        name = "zhan"
        //在調用父類方法之前,需要給屬性初始化
        super.init()
    }
}

5.在Student(子類)中實現以下方法

class Student: Person {
    
    var no : String
    
    override init() {
        
        print("Student init()")
        
        no = "001"
        
        super.init()
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,779評論 18 399
  • 下面是我最近兩年學習OC中的一些基礎知識,對于學習OC基礎知識的人可能有些幫助,拿出來分享一下,還是那句話不喜勿噴...
    小小趙紙農閱讀 2,662評論 1 7
  • 一:java概述:1,JDK:Java Development Kit,java的開發和運行環境,java的開發工...
    ZaneInTheSun閱讀 2,694評論 0 11
  • 20- 枚舉,枚舉原始值,枚舉相關值,switch提取枚舉關聯值 Swift枚舉: Swift中的枚舉比OC中的枚...
    iOS_恒仔閱讀 2,316評論 1 6
  • 【動待花開】20171123 D42 下班前接到樓下媽媽的電話,邀請我們參加他家小朋友的生日宴,平時一起玩的要好的...
    芝麻_mom閱讀 237評論 0 0