我有一个简单的特征遗传:
trait Foo {def foo:Unit}
trait Foo1 extends Foo {override def foo = println("Foo1")}
trait Foo2 extends Foo {override def foo = println("Foo2")}
class FooClass extends Foo1 with Foo2
(new FooClass).foo
//print Foo2 due to linearization我希望当FooClass用重写方法扩展这两个特征时,编译器可以给我一个警告,说Foo1.foo被重写和丢弃了,因为目前它只是静默地被重写了。我如何才能做到这一点?
发布于 2020-07-18 04:05:09
将final修饰符添加到Foo1和Foo2中的foo。
实际上,一般来说,将所有方法都设为final或抽象都是一种很好的做法。
https://stackoverflow.com/questions/62960428
复制相似问题