Swift3.0 構(gòu)造函數(shù)(重載)

1.創(chuàng)建Person類(lèi)文件,繼承NSObject
2.創(chuàng)建Student類(lèi)文件,繼承自Person(父類(lèi))
3.在ViewController中實(shí)現(xiàn)以下方法

/**
 在swift的同一個(gè)項(xiàng)目中(同一個(gè)命名空間下),所有的類(lèi)都是共享的,可以直接訪問(wèn),不需要import
 所有對(duì)象的屬性 var,都可以直接訪問(wèn)到
 */

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        //實(shí)例化 Person
        //()-> alloc init
        //Swift中對(duì)應(yīng)一個(gè)函數(shù) init()構(gòu)造函數(shù)
        //作用 : 給成員變量分配空間,初始化成員變量
//        let p = Person(name: "老三")
//        print(p.name)
        
        let s = Student(name: "老四", no: "001")
        print(s.name + "------" + s.no)
        
    }
}

4.在Person(父類(lèi))中實(shí)現(xiàn)以下代碼

/**
 1.構(gòu)造函數(shù)的目的 : 給自己的屬性分配空間并設(shè)置初始值
 2.調(diào)用父類(lèi)構(gòu)造函數(shù)之前,需要給本類(lèi)的屬性設(shè)置初始值
 3.調(diào)用父類(lèi)構(gòu)造函數(shù),給父類(lèi)屬性分配空間,并設(shè)置初始值
    NSObject沒(méi)有屬性,只有一個(gè)成員變量 'isa'
 4.如果重載了構(gòu)造函數(shù),并且沒(méi)有實(shí)現(xiàn)父類(lèi) init 方法,系統(tǒng)不再提供init()構(gòu)造函數(shù)(默認(rèn)是會(huì)有的)
    重載之后不再提供,因?yàn)槟J(rèn)的構(gòu)造函數(shù)不能給本類(lèi)的屬性分配空間
 與OC方法相反
 */

class Person: NSObject
{
    var name :String
    
    //重寫(xiě) : 父類(lèi)有這個(gè)方法
    override init()
    {
        print("Person init()")
        
        name = "zhan"
        
        super.init()
    }
    
    //重載 : 函數(shù)名相同,但是參數(shù)和個(gè)數(shù)不同
    //重載可以給自己的屬性從外部設(shè)置初始值
    
    init(name : String) {
        
        //使用參數(shù)的name設(shè)置給屬性
        self.name = name
        
        //調(diào)用父類(lèi)的構(gòu)造函數(shù)
        super.init() 
    }
}

5.在Student(子類(lèi))中實(shí)現(xiàn)以下代碼

class Student: Person {

    var no : String
    
    init(name: String , no : String)
    {
        
        self.no = no
        //調(diào)用父類(lèi)方法給 name 初始化
        super.init(name: name)
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,734評(píng)論 18 399
  • 下面是我最近兩年學(xué)習(xí)OC中的一些基礎(chǔ)知識(shí),對(duì)于學(xué)習(xí)OC基礎(chǔ)知識(shí)的人可能有些幫助,拿出來(lái)分享一下,還是那句話不喜勿噴...
    小小趙紙農(nóng)閱讀 2,823評(píng)論 1 7
  • 一:java概述:1,JDK:Java Development Kit,java的開(kāi)發(fā)和運(yùn)行環(huán)境,java的開(kāi)發(fā)工...
    ZaneInTheSun閱讀 2,815評(píng)論 0 11
  • 1.objective-c常見(jiàn)面試題:1、**OC **語(yǔ)言的基本特點(diǎn)OC 語(yǔ)言是 C 語(yǔ)言的一個(gè)超集,只是在 C...
    LZM輪回閱讀 1,030評(píng)論 0 3
  • 惜哉屈公,獨(dú)醒于世人。哀哉屈公,獨(dú)清于濁世! 生逢亂世滿經(jīng)綸,怎奈小人嫉幾分 縱身一躍逍遙去,名垂千古有幾人
    妃小霖閱讀 472評(píng)論 0 2

友情鏈接更多精彩內(nèi)容