search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

[Swift] 覆寫 static 函式不成功?改用 class 函式吧! - 海芋小站

在 Swift 中,函式是我們很常用到的工具,但是如果我們將函式宣告為 static,在使用繼承來覆寫 static 函式時,通常都不能成功。但在實務上,我們有時會遇到要覆寫 static 函式,那又該如何才能覆寫 (override) 一個 static 的函式呢?

swift

 

首先,先看一下我們的範例。

  • class A {
  •  
  •     static func print() {
  •         Swift.print("Hello A")
  •     }
  •  
  • }
  •  
  • class B: A {
  •  
  •     override static func print() {
  •         Swift.print("Hello B")
  •     }
  • }

 

這時,編繹器很聰明的跳出「Cannot override static method」的警告了! 那我們該如何解呢?答案很簡單,將 static 改為 class 就好,以這一個例子如下:

  • class A {
  •  
  •     class func print() {
  •         Swift.print("Hello A")
  •     }
  •  
  • }
  •  
  • class B: A {
  •  
  •     override class func print() {
  •         Swift.print("Hello B")
  •     }
  • }

 

這時我們的函式就被覆寫啦,是不是超級簡單的呢?



熱門推薦

本文由 inote 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦