First, i would like to say: thank you.

Second, i would like to have your opinion:
"added static/final function implementations to interfaces"

Could you allow normal function imp to interfaces too? Interface will look like c++ struct, but the difference is the way inheritance organized, so that diamond shape problem does not exist.

And you could simplify something too. For example: for comparison between classes, we just inherit Comparable interface, which has implementation of many op<, op>, op<=, op>=, ...

(Well, in fact, this is done in Scala, it is named linearization). :)

For example:

class Biology
{
    ......
}

interface Animal
{
    void eat() { ... }
    void run() { ... }
}

interface Bird
{
    void fly() { ... }
}

class Penguin : Biology, Animal, Bird
{
}

The left most class / interface will be the top super. Each interface remain will solve its parent at definition site (line "class Penguin : Biology, Animal, Bird")
Result: Penguin -> Bird -> Animal -> Biology.

Details of linearization are in page 52, ScalaRef.
http://www.scala-lang.org/sites/default/files/linuxsoft_archives/docu/files/ScalaReference.pdf

Thanks.

Reply via email to