継承されたトレイトで定義されたメソッドでサブタイプを強制するにはどうすればよいですか? ??? には何を入れますか?下
trait Organism {
def reproduce(org:???):Bool
}
class Amoeba extends Organism {
def reproduce(org:Amoeba) = {// so cute..}
}
class Dinosaur extends Organism {
def reproduce(org:Dinosaur) = { // so scary}
}
私のクライアントコードは次のようになります。
object BoozeParty {
def gonuts() = {
val (maleOrganism:Organism,femaleOrganism:Organism) = getOrganisms()
maleOrganism.reproduce(femaleOrganism)
}
}
上記のコードは、(Organism,Organism) のタプルを返すため、 getOrganisms() メソッドを介して恐竜やアメーバを送信しても機能するはずです。
私が達成したい2つのコンセプトは次のとおりです。
- アメーバはアメーバと交配する方法を知っており、ダイナソーはダイナソーと交配する方法を知っています。だから彼らに複雑な詳細を理解させてください。
- 恐竜をアメーバに渡してはいけません。アメーバにはアメーバだけ