2015-04-03 79 views
1

我利用繼承,需要訪問父變量。
我該如何做到這一點?如何訪問超類?

class EFPaymentObject: NSObject { 

    var price: NSString = "1200" 
    var title: NSString! 
    var desck: NSString! 
    var hasPass: Bool! 

    func getPrice() -> NSString() { 
     return price 
    } 
} 

class EFGoodsPayment: EFPaymentObject{ 

    var pay: NSString = "1" 
    var type: NSString = "3" 
    //var select_club_id: NSString = EFBuyBasket.sharedInstance.getClubId() 
    var goods: NSString = "" 
    var money = price  // doesn't work 
    var money = getPrice() // doesn't work either 
} 
+2

不能設置默認指向超類的值。您可以在初始化過程中訪問超類屬性。請參閱Swift編程手冊 – Paulw11 2015-04-03 07:23:02

回答

3

如果我把你的榜樣,您可以將childclass的初始化期間訪問超類的price屬性和money這樣設置的默認值:

class EFPaymentObject: NSObject { 

    var price: NSString = "1200" 
    var title: NSString? 
    var desck: NSString? 
    var hasPass: Bool? 

} 

class EFGoodsPayment: EFPaymentObject { 

    var pay: NSString = "1" 
    var type: NSString = "3" 
    var goods: NSString = "" 
    var money: NSString? 

    override init() { 
     super.init() 
     money = super.price 
    } 

} 


let payment = EFGoodsPayment() 
println(payment.money!)  // prints "1200"