私は動物の色を一度指定したい、それは同じ種のすべての動物で同じです。抽象オブジェクトの値とメソッドをスカラでどのように宣言しますか?
だから私がやりたい:
abstract object Animal {val color: String}
そして、私はまだすることができない規則を持っているように、これは、オブジェクトにする必要が
object Dog extends Animal {val color = "green"}
で個々の動物の色を指定します動物のオブジェクトで宣言されたファクトリメソッドを持つ動物だけを変更し、ファクトリメソッドはその色にアクセスする必要があります。例:
abstract object Animal {
val color: String
def makeAnimal(args): Animal = ...
}
「クラスだけが宣言されているが未定義のメンバーがある可能性がある」として、これを実際にスカラーで行う方法を教えてください。
私は形質を使ってこれを行うためのハックな方法を考えることができますが、私はより良いものがあることを望んでいます。
[編集] だから、私は複雑な理由で値や方法を保持するために形質を使うことはできません。 現在のソリューションでは、子オブジェクトを親オブジェクトに静的に登録する方法があります。このメソッドを使用すると、オブジェクトに定義されている非特性値やメソッドにアクセスできます。私はまだもっと良い解決策を望んでいます。