我跟着一個Swift教程,其中我們編寫了一個名爲DragImg的UIImageView的子類,並且在該子類中覆蓋了一些函數,即touchesBegan,touchesMoved和touchesEnded。在swift中聲明子類對象爲超類,但對象仍然表現爲子類
然後,我進入身份檢查員,查看我想要應用子類的圖像,並將該類更改爲DragImg,然後將它們連接到ViewController.swift作爲插座。
然而,在我ViewController.swift文件我聲明他們作爲一個UIImageView對象即
@IBOutlet weak var HeartImg: UIImageView!
,而不是
@IBOutlet weak var HeartImg: DragImg!
即使我沒有改變這一點,圖像仍然充當根據我們在子類中寫的函數定義。
我不知道爲什麼這仍然工作,因爲我認爲超類無法訪問子類的功能。這是否意味着上述聲明在很大程度上是多餘的,唯一有所作爲的是改變身份檢查員的階級?
有人可以解釋這個嗎?