Jeff Verdegan wrote: There's no real difference between extending a purely abstract class and implementing an interface.
But there is a difference between extending a concrete class and extending an interface. whipping these up (so they may not be 100% correct):
This should compile and run:
This will not:
Because I have to DO something to myClassB. I have to write the code to make this a viable class.
Maybe it is a distinction without a difference. And again, I'm not an expert here. But this is how I see the difference.
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors