final 周辺について。理想論?いや、理想論大事。 OCP (Open-Closed Principle) 開放閉鎖原則とも。 簡単に言うと、モジュール (ここでは class) は拡張できるべきだが、修正は行うべきではない、という原則。 これを原則に従うと、(もっと一般的な意味での) 修正が容易になる。 「拡張できるべき」と「修正は行うべきではない」を両立しないといけないので、一見、継承はこの原則を守るためには使っても良さそうなものだけど・・・ 実装の継承が OCP を破る例 例えば、 class Rectangle { int w; int h; Rectangle(int w, int h) { this.w = w; this.h = h; } int width() { return w; } int height() { return h; } void setWidth(i