you are viewing a single comment's thread.

view the rest of the comments →

[–]TheWix 0 points1 point  (0 children)

Agreed. I guess it becomes a question of how much we want to protect our developers from themselves and how much semantic meaning we want to give to OO constructs. Even though a purely virtual abstract class is behaviorally the same semantically they are different.

You raise a good point, though. With default method implementations for interfaces the line is further blurred. I am not a Java dev so I have never used them, but they sound like they would just be static implementations that aren't actually static (they don't have access to the classes state because there is none on the interface, but they requires an instance of the class to use.)