编辑代码

// 食品类 Food
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())")

    }
}

// 蔬菜类 Vegetables
class Vegetables: Food {
    override func calculateOriginalTotal() -> Double {
        return price * Double(quantity)
    }
    
    // 蔬菜打九折
    override func calculateDiscountedTotal() -> Double {
        return calculateOriginalTotal() * 0.9
    }
}

// 水果类 Fruits
class Fruits: Food {
    override func calculateOriginalTotal() -> Double {
        return price * Double(quantity)
    }
    
    // 水果打八折
    override func calculateDiscountedTotal() -> Double {
        return calculateOriginalTotal() * 0.8
    }
}

// 肉类类 Meats
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)")