1
我已經重新定義了繼承類中的>運算符,但系統仍然調用父類的>。這裏是我的父母 類:Swift運算符和繼承
class GenericModelClass : NSObject {
var subElementArray = [GenericModelClass]()
func orderSubElements() {
self.subElementArray.sortInPlace({return $0 > $1})
}
}
func > (lhs: GenericModelClass, rhs: GenericModelClass) -> Bool {
print ("Use my > function on GenericModelClass (real class is \(lhs.dynamicType))")
return lhs.uniqueID() > rhs.uniqueID()
}
這裏是繼承類:
class Chapter: GenericModelClass {
}
func > (lhs: Chapter, rhs: Chapter) -> Bool {
print("Use my > operator on chapter")
return lhs.number > rhs.number
}
但是當我打電話與在subElementArray中,>被稱爲章對象orderSubElements功能是從GenericModelClass一。因此,在日誌中我有:
用我的>功能上GenericModelClass(實類是章)
你有一個想法,我怎麼能拿orderSubElements使用正確的操作?如果我在subElementArray數組中有章節,我想調用>章節
請注意,對於Comparable協議,您應該實現'<'和'=='。所有其他關係運算符(如'>')則由標準庫提供。 –