logoalt Hacker News

Someonetoday at 1:14 PM1 replyview on HN

Inheritance has its uses, but is easily overused.

In a sense, it’s like global variables. About every complex program [1] has a few of them, so languages have to support them, but you shouldn’t have too many of them, and people tend to say “don’t use globals”.

[1] some languages such as classical Java made it technically impossible to create them, but you can effectively create one with

  class Foo {
    public static int bar;
  }
If you’re opposed to that, you’ll end up with making that field non-static and introducing a singleton instance of “Foo”, again effectively creating a global.

In some Java circles, programmers will also wrap access to that field in getters and setters, and then use annotations to generate those methods, but that doesn’t make such fields non-global.


Replies

wolvesechoestoday at 1:31 PM

> Inheritance has its uses, but is easily overused.

This I can agree with, but it is far from being "worst pattern". Everything can be like salt.