対応するコンパニオン オブジェクト、つまり、トレイトを使用するクラスのコンパニオン オブジェクトを使用するトレイトを定義しようとしています。
たとえば、私は持っています:
:paste
class Parent {
def callMyCompanion = print(Parent.salute)
}
object Parent {
def salute = "Hello from Parent companion object"
}
class Child extends Parent {
}
object Child {
def salute = "Hello from Child companion object"
}
次に、親オブジェクトを作成します。
scala> val p = new Parent()
p: Parent = Parent@1ecf669
scala> p.callMyCompanion
Hello from Parent companion object
しかし、子供と一緒に:
scala> val c = new Child()
c: Child = Child@4fd986
scala> c.callMyCompanion
Hello from Parent companion object
取得したい: Child コンパニオン オブジェクトからこんにちは
どうすれば達成できますか?
-- 明確にするために編集
ご回答ありがとうございます。この場合、callMyCompanion は自分自身を説明するために作成したダミー メソッドです。親メソッドを実装するすべてのクラスでオーバーライドすることなく、親メソッドを再利用しようとしています...
私がこれまでに見つけた解決策は、コンパニオンオブジェクトを使用するインスタンスメソッドを実装することでした...