Override final method
final, overriding, scala
Solution
You can use `TestObject` as `Test` like this:
(TestObject: Test).doIt
Problem
Final methods can not be overridden in a subclass. But with the magic of Scala it seems as this is possible. Consider the following example: ``` trait Test { final def doIt(s: String): String = s } object TestObject extends Test { def doIt: String => String = s => s.reverse } ``` The method `doIt` in the object `TestObject` has not the same signature as `doIt` in trait `Test`. Thus `doIt` is overloaded instead of overridden. But a normal call to `doIt` always calls the method in `TestObject`: ``` val x = TestObject.doIt("Hello") //> x : String = olleH ``` Question: How can I call the original method `doIt` on the `TestObject`. Is this possible or is this method "sort of overridden"?