【发布时间】:2017-05-12 20:37:41
【问题描述】:
所以我有一个抽象超类,以及一个用超类中未声明的字段扩展这个超类的子类。有没有办法从超类中访问这些字段?我不能在超类中声明这些字段,因为它有其他可能没有这些字段的子类。
编辑以使其更清晰:
所以我正在做一些有不同物品的商店。因此,我有一个名为 item 的抽象类(带有一个字段:price),并且不同的项目是扩展项目类并定义价格的对象。但也有一些特殊物品,同一物品的所有实例都有不同的 id,它们也声明了它们的价格。并且“购物者”必须能够制作普通商品和特殊商品的“购物清单”,其中可以计算总价,但您还必须能够从清单中查看特殊商品的 ID。
编辑:我想要实现的示例。
我做了一个小例子
//The numbers are different for each ticket
// and are used to denote a winner in the end.
abstract class LotteryTicket(val numbers: String) {
val price: Int
}
class GoldTicket(numbers: String) extends LotteryTicket(person) {
val price: Int = 10
}
class SilverTicket(numbers: String) extends LotteryTicket(person) {
val price: Int = 5
}
abstract class Drink {
val price: Int
}
object Water extends Drink {
val price: Int = 1
}
object Coffee extends Drink {
val price: Int = 2
}
class Bill
class Customer
“Bill”类应该包含一个列表,其中可以包括饮料和彩票, 可以计算总额,并且客户必须能够开出这样的账单。 Customer 类还需要一个方法来确认购买并检查他的号码是否 他购买的每张彩票都不同。因为当他在两张票上有相同的号码时 确认失败。
【问题讨论】:
标签: scala inheritance