Hacker News new | ask | show | jobs
by cousin_it 3449 days ago
Do you know any situations where implementation inheritance is the best tool?
2 comments

I mentioned one such example about 6 hours before your post.

As the other reply stated, when you mostly want to keep the base class but over-ride a small specific subset of what it does.

E.G.

The base class uses class member functions to do save/load records from a store.

You want to implement a variant of that class which instead works well with a database engine you like.

You can then derive a class and define JUST the storage and recall functions, and inherit everything else.

Interfaces are a better tool for that case IMO. One small utility interface (save/load) and two implementations would be easier to test in isolation and wouldn't suffer from the fragile base class problem.
Yeah, inheritance is the best tool when I want a derived class to implement all the behavior of the super class.