Swift程式演示類中方法的過載


方法過載是一種技術,它允許我們在單個類中建立多個同名方法,但這些方法的引數型別或引數數量不同。在方法呼叫時,根據傳遞給它的引數型別或數量來確定呼叫哪個特定方法。例如 -

class Book {
   // Methods
   func Author(){}
   func Author(x: Int)->Int{}
   func Author(x: String)->String{}
   func Author(a: Int, b: String)->Int{}
}

這裡,Book 類有四個過載方法。其中方法名稱相同,但引數型別和引數數量不同。在這篇文章中,我們將學習如何編寫一個 Swift 程式來演示類中方法的過載。

方法 1:使用不同數量的引數進行過載

這裡,一個類包含多個同名方法,但引數數量不同。

示例

以下 Swift 程式演示了在一個類中使用不同數量的引數進行方法過載。

import Foundation
import Glibc
 
class MathematicOperation {

   // Method 1
   func product(x: Int, y: Int) -> Int {
      return x * y
   }
    
   // Method 2
   func product(x: Int, y: Int, z: Int) -> Int {
      return x * y * z
   }
}

// Creating object
let obj = MathematicOperation ()

// Calling method 1
print("Product:", obj.product(x: 10, y: 40))

// Calling method 2
print("Product:", obj.product(x: 80, y: 20, z: 90))

輸出

Product: 400
Product: 144000

在上面的程式碼中,我們建立了一個名為“MathematicOperation”的類。此類包含兩個同名方法“product”,但引數數量不同。然後我們建立“MathematicOperation”類的例項並呼叫“product”方法。我們可以根據引數的數量確定呼叫哪個方法。如果我們傳遞兩個引數,則呼叫第一個方法;如果我們傳遞三個引數,則呼叫第二個方法。

方法 2:使用不同型別的引數進行過載

這裡,一個類包含多個同名方法,但引數型別不同。這裡引數的數量可以相同,但型別必須不同。

示例

以下 Swift 程式演示了在一個類中使用不同型別的引數進行方法過載。

import Foundation
import Glibc
 
class Addition {

   // Method 1
   func sum(x: Int, y: Int) -> Int {
      return x + y
   }
    
   // Method 2
   func sum(x: Double, y: Double) -> Double {
      return x + y
   }
    
   // Method 3
   func sum(x: String, y: String)-> String{
      return x + y
   }
}

// Creating object
let obj = Addition()

// Calling method 1
print("Sum:", obj.sum(x: 10, y: 40))

// Calling method 3
print("Sum:", obj.sum(x: "Blue", y: "Sky"))

// Calling method 2
print("Sum:", obj.sum(x: 82.2, y: 21.2))

輸出

Sum: 50
Sum: BlueSky
Sum: 103.4

在上面的程式碼中,我們建立了一個名為“Addition”的類。此類包含三個同名方法“sum”,引數數量相同,但引數型別不同。然後我們建立“Addition”類的例項並呼叫“sum”方法。我們可以根據引數的型別確定呼叫哪個方法。如果我們傳遞兩個整型引數,則呼叫第一個方法。如果我們傳遞兩個字串型別引數,則呼叫第三個方法。如果我們傳遞兩個雙精度型別引數,則呼叫第二個方法。

結論

因此,這就是我們在類中演示方法過載的方式。方法過載提供了更好的程式碼可讀性、靈活性、簡潔性和多型性。此外,請始終記住,過載方法可以具有相同的名稱,相同或不同的返回型別,但它們的引數列表必須不同。

更新於: 2023年2月8日

198 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.