class A { def foo(): String = ... def bar(): String = ... def baz(): String = ... } class B { private val a: A = new A() def foo(): String = ... // Export a's methods as b's, except for foo, and rename baz as qux export a.{foo => _, baz => qux, _} } val b = new B() b.foo() // b's implementation b.bar() // a's b.qux() // a's baz