91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

Swift協議怎樣實現多態

小樊
82
2024-10-31 06:05:49
欄目: 編程語言

在Swift中,協議本身并不直接支持多態,但可以通過泛型和工廠模式來實現類似多態的效果。以下是一個示例:

首先,定義一個協議Shape

protocol Shape {
    func area() -> Double
}

然后,為不同的形狀類型實現這個協議:

struct Circle: Shape {
    let radius: Double
    
    func area() -> Double {
        return Double.pi * radius * radius
    }
}

struct Rectangle: Shape {
    let width: Double
    let height: Double
    
    func area() -> Double {
        return width * height
    }
}

接下來,創建一個工廠類ShapeFactory,用于生成不同形狀的實例:

class ShapeFactory {
    static func createShape(type: String) -> Shape {
        switch type {
        case "circle":
            return Circle(radius: 1.0)
        case "rectangle":
            return Rectangle(width: 2.0, height: 3.0)
        default:
            fatalError("Unknown shape type")
        }
    }
}

現在,你可以使用ShapeFactory來創建不同類型的形狀,并通過協議Shape調用它們的area()方法,從而實現類似多態的效果:

let circle = ShapeFactory.createShape(type: "circle")
print("Circle area: \(circle.area())")

let rectangle = ShapeFactory.createShape(type: "rectangle")
print("Rectangle area: \(rectangle.area())")

輸出結果:

Circle area: 3.141592653589793
Rectangle area: 6.0

通過這種方式,你可以在Swift中實現類似多態的功能。

0
衡南县| 长葛市| 赤水市| 工布江达县| 乐平市| 天峨县| 武夷山市| 姜堰市| 衡水市| 米脂县| 保靖县| 白沙| 修水县| 福贡县| 丰县| 甘肃省| 新干县| 德令哈市| 延津县| 南郑县| 清原| 方山县| 安徽省| 惠东县| 德江县| 永州市| 红原县| 靖西县| 屏山县| 郁南县| 铜陵市| 昌平区| 西畴县| 柳江县| 河津市| 保德县| 仙桃市| 托克逊县| 泸州市| 哈尔滨市| 六安市|