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 次浏览

启动您的职业生涯

通过完成课程获得认证

开始学习
广告