swift繼承(基類and子類)

前言

一個類可以繼承另一個類的方法,屬性和其它特性。當一個類繼承其它類時,繼承類叫子類,被繼承類叫超類(或父類)。在 Swift 中,繼承是區分「類」與其它類型的一個基本特徵。

文章目錄

基類

不繼承於其它類的類,稱之爲基類。

定義一個基類:

class perSon{
    
    var name:String = ""
    var age:Int = 0
    var sex:String = ""
    var jihe:[String] = [""]
    
    
  final  var seylove:String {
        return "I love you"
    }
    
    
    var seyHello:String{
        get{
            return "\(name)向我說了一句\(age)他還是個:\(age)"
        }
        
        set{
            if age>10 {
                print("\(name)已經成年了")
            }
        }
        
    }
    
    subscript(Index:Int)->String{
        
        get{
            if age > 10{
                return jihe.remove(at: Index)
            }else{
                return "年齡未達標!"
            }
        }
        set{
            if age>10{
                age+=Int(newValue) ?? 20
            }
        }
    }
    
    
    func home() ->String{
        return("我叫\(name)我今年\(age)歲,行別:\(sex)")
    }
    
}

定義一個子類:

class ITboy:perSon{
    
    //被加了final
//    override var seylove:String{
//        return "Im  dont  love you"
//    }
    
    override var seyHello: String{

            get{
                   return "\(name)向我說了一句\(age)他還是個:\(age)"
               }
               
            set{
                   if age>18 {
                       age==18
                   }
               }

    }
    
   override  func home() ->String{
          return("我叫\(name)我今年\(age)歲,行別:\(sex)")
      }
    
    
    override subscript(Index:Int)->String{
               get{
            if age > 10{
                return jihe.remove(at: Index)
            }else{
                return "年齡未達標!"
            }
        }
        set{
            if age>10{
                age+=Int(newValue) ?? 20
            }
        }

    }

}

實力化基類/父類:

var shiji = perSon()
shiji.age=20
shiji.name="shiji"
shiji.sex="boy"
shiji.seyHello
shiji.jihe.append( "gridOne")
shiji.jihe.append( "two")
shiji.jihe.append( "shree")
shiji.jihe.append( "four")
print(shiji.home())

實力化之類:

var ItBoy = ITboy()
ItBoy.age=10
ItBoy.name="gw"
ItBoy.sex="boy"
ItBoy.seyHello
ItBoy.home()
shiji[1]

注意:存儲屬性不能被重寫 ,父類中的計算屬性沒有get and set方法的時候 子類可以寫出 get and set 方法,父類中的計算屬性有get and set 方法 的時候 子類不能簡寫,fina :防止被重寫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章