私は、absractスーパークラス、およびスーパークラスで宣言されていないフィールドでこのスーパークラスを拡張するサブクラスを持っています。スーパークラス内からそれらのフィールドにアクセスする方法はありますか?これらのフィールドはスーパークラスに宣言できません。なぜなら、これらのフィールドを持たないサブクラスがあるからです。それをより明確にするためにスーパークラスで宣言されていないサブクラスのフィールドにアクセスできますか?
編集:
だから私は、さまざまなアイテムを持っているお店のいくつかの種類を作っています。したがって、私はアイテムと呼ばれる抽象クラス(フィールド:価格)を持っており、異なるアイテムは、アイテムクラスを拡張して価格を定義するオブジェクトです。しかし、同じアイテムのすべてのインスタンスが異なるIDを持っている特別なアイテムもあります。また、そのアイテムの価格も宣言しています。 「買い物客」は、通常価格と特別価格の両方の商品の「買い物リスト」を作ることができなければなりません。合計価格を計算することができますが、リスト内の特別商品のIDも確認できる必要があります。
:達成したいものの例。
ドリンクだけでなく、合計を算出することができるとお客様がなければならない いるLotteryTicketsを含むことができ、リストが含まれている必要があり、私はクラスのビル少し '例
//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
を作りましたそのような法案を作ることができる。 また、Customerクラスでは購入を確認し、購入したチケットごとに LottoryTicketの番号が異なるかどうかを確認するメソッドが必要です。彼が2枚のチケットで同じ番号を持っているので、 確認が失敗します。
まあ、私は別のアイテムを持つ何らかの種類のショップを作っています。だから、クラスと呼ばれるアイテム(フィールド:価格)と異なるアイテムは、オブジェクトのため、彼らは価格と他に何もないので。しかし、アイテムのすべてのインスタンスが異なるIDを持つ特別なアイテムもあります。 「買い物客」は、通常価格と特別価格の両方の商品の「買い物リスト」を作ることができなければなりません。合計価格を計算することができますが、リスト内の特別商品のIDも確認できる必要があります。 –