class Food {
var name: String
var price: Double
var quantity: Int
init(name: String, price: Double, quantity: Int) {
self.name = name
self.price = price
self.quantity = quantity
}
func calculateOriginalPrice() -> Double {
return price * Double(quantity)
}
func calculateDiscountedPrice() -> Double {
return calculateOriginalPrice()
}
}
class Vegetables: Food {
override init(name: String, price: Double, quantity: Int) {
super.init(name: name, price: price, quantity: quantity)
}
override func calculateDiscountedPrice() -> Double {
return calculateOriginalPrice() * 0.9
}
}
class Fruits: Food {
override init(name: String, price: Double, quantity: Int) {
super.init(name: name, price: price, quantity: quantity)
}
override func calculateDiscountedPrice() -> Double {
return calculateOriginalPrice() * 0.8
}
}
class Meats: Food {
override init(name: String, price: Double, quantity: Int) {
super.init(name: name, price: price, quantity: quantity)
}
override func calculateDiscountedPrice() -> Double {
return calculateOriginalPrice() * 0.7
}
}
let vegetables1 = Vegetables(name: "西红柿", price: 2.5, quantity: 3)
let fruits1 = Fruits(name: "苹果", price: 4.0, quantity: 2)
let meats1 = Meats(name: "牛肉", price: 30.0, quantity: 1)
var sum = 0.0
let foodInstances: [Food] = [vegetables1, fruits1, meats1]
for food in foodInstances {
sum += food.calculateDiscountedPrice()
}
print("总价:\(sum)")