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 calculateOriginalTotal() -> Double {
return price * Double(quantity)
}
func calculateDiscountedTotal() -> Double {
return calculateOriginalTotal()
}
func printDetail(){
print("Name:\(self.name) Price : \(self.price) Quantity :\(self.quantity) 原始总价: \(self.calculateOriginalTotal()) 打折后的总价 :\(self.calculateDiscountedTotal())")
}
}
class Vegetables: Food {
override func calculateOriginalTotal() -> Double {
return price * Double(quantity)
}
override func calculateDiscountedTotal() -> Double {
return calculateOriginalTotal() * 0.9
}
}
class Fruits: Food {
override func calculateOriginalTotal() -> Double {
return price * Double(quantity)
}
override func calculateDiscountedTotal() -> Double {
return calculateOriginalTotal() * 0.8
}
}
class Meats: Food {
override func calculateOriginalTotal() -> Double {
return price * Double(quantity)
}
override func calculateDiscountedTotal() -> Double {
return calculateOriginalTotal() * 0.7
}
}
let vegetables1 = Vegetables(name: "青菜", price: 2.5, quantity: 2)
let vegetables2 = Vegetables(name: "西红柿", price: 3.0, quantity: 3)
let fruits1 = Fruits(name: "苹果", price: 5.0, quantity: 4)
let fruits2 = Fruits(name: "橙子", price: 4.0, quantity: 5)
let meats1 = Meats(name: "牛肉", price: 30.0, quantity: 1)
let meats2 = Meats(name: "鸡肉", price: 20.0, quantity: 2)
vegetables1.printDetail()
vegetables2.printDetail()
fruits1.printDetail()
fruits2.printDetail()
meats1.printDetail()
meats2.printDetail()
let sumOriginal = vegetables1.calculateOriginalTotal() +
vegetables2.calculateOriginalTotal() +
fruits1.calculateOriginalTotal() +
fruits2.calculateOriginalTotal() +
meats1.calculateOriginalTotal() +
meats2.calculateOriginalTotal()
let sumDiscounted = vegetables1.calculateDiscountedTotal() +
vegetables2.calculateDiscountedTotal() +
fruits1.calculateDiscountedTotal() +
fruits2.calculateDiscountedTotal() +
meats1.calculateDiscountedTotal() +
meats2.calculateDiscountedTotal()
print("原始总价:\(sumOriginal)")
print("打折后总价:\(sumDiscounted)")