Also habe ich eine ABSRACT-Superklasse und eine Unterklasse, die diese Oberklasse mit Feldern erweitert, die nicht in der Oberklasse deklariert sind. Gibt es eine Möglichkeit, auf diese Felder innerhalb der Oberklasse zuzugreifen? Ich kann diese Felder in der Oberklasse nicht deklarieren, da es andere Unterklassen hat, die diese Felder möglicherweise nicht haben.Können Sie auf Felder einer Unterklasse zugreifen, die nicht in der Oberklasse deklariert sind?
bearbeiten, um es deutlicher zu machen:
So bin ich eine Art von Geschäft zu machen, die verschiedene Elemente hat. So habe ich eine abstrakte Klasse namens item (mit einem Feld: price) und die verschiedenen Items sind Objekte, die die Item-Klasse erweitern und den Preis definieren. Aber es gibt auch einige spezielle Elemente, bei denen alle Instanzen desselben Elements unterschiedliche IDs haben, sie geben auch ihren Preis an. Und ein "Käufer" muss in der Lage sein, eine "Einkaufsliste" von normalen und speziellen Artikeln zu erstellen, wo der Gesamtpreis berechnet werden kann, aber Sie müssen auch in der Lage sein, die IDs der Sonderposten aus der Liste zu sehen.
bearbeiten: ein Beispiel dafür, was ich will, erreichen.
Ich habe ein kleines Beispiel
//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
Die Klasse ‚Bill‘ eine Liste enthalten soll, die Getränke sowie LotteryTickets, , für die die Gesamt berechnet werden kann und der Kunde hat enthalten kann sein in der Lage, eine solche Rechnung zu machen. Die Kundenklasse benötigt auch eine Methode, die den Kauf bestätigt und überprüft, ob die Nummern auf seinem LottoryTicket für jedes von ihm gekaufte Ticket unterschiedlich sind. Denn wenn er die gleiche Nummer auf 2 Tickets hat Die Bestätigung schlägt fehl.
Nun, ich mache eine Art von Geschäft, das verschiedene Elemente hat. Also habe ich eine Klasse namens item (mit einem Feld: price) und die verschiedenen Items sind object, da sie nur einen Preis und sonst nichts haben. Es gibt jedoch auch einige spezielle Elemente, bei denen jede Instanz des Elements eine andere ID hat. Und ein "Käufer" muss in der Lage sein, eine "Einkaufsliste" von normalen und speziellen Artikeln zu erstellen, wo der Gesamtpreis berechnet werden kann, aber Sie müssen auch in der Lage sein, die IDs der Sonderposten aus der Liste zu sehen. –