誰に向けての記事か この記事は主にオブジェクト指向プログラミングに慣れてきた頃くらいの方を対象にしています。 PythonやJava、Rubyといったプログラミング言語を勉強しはじめると、しばらくしてオブジェクト指向という概念を学習することになります。そしてオブジェクト指向プログラミングの重要な特徴として以下の3つがよく挙げられます。 継承 カプセル化 ポリモーフィズム 上記のうち、特に使い方に注意を払わなければならないのは継承です。継承はスーパクラスとサブクラスの間に密結合を生み出します。継承を誤って使ってしまうと1つの変更が他のクラスにも影響を及ぼしかねません。そうすると変更するのにも認知的なコストがかかるようになります。継承自体禁止するように言う人もいるくらいです。 筆者自身は継承を全面的に禁止しようとは思いません。ただし、継承にも良い使い方、良くない使い方というのはあります。それで
![継承、誤って使っていませんか? - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/41ec653f6d474215f45f55eab2f39ee986b8e081/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fengineer-festa-ogp-background-074608b13b4bbe67c10ada41e7e2d292.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUU3JUI2JTk5JUU2JTg5JUJGJUUzJTgwJTgxJUU4JUFBJUE0JUUzJTgxJUEzJUUzJTgxJUE2JUU0JUJEJUJGJUUzJTgxJUEzJUUzJTgxJUE2JUUzJTgxJTg0JUUzJTgxJUJFJUUzJTgxJTlCJUUzJTgyJTkzJUUzJTgxJThCJUVGJUJDJTlGJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjNGRkZGRkYmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz1iNTVhYTJhZDRmN2M3ZTkzZDg0NDc0YmRhMGY5NTVjMw%26mark-x%3D120%26mark-y%3D96%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9OTcyJnR4dD0lNDBrb20tMDkyNCZ0eHQtY29sb3I9JTIzRkZGRkZGJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9N2I3MzBiMWY5ODAyN2IxNWE0Yzg2ZWYzMjE3NDNjZDg%26blend-x%3D120%26blend-y%3D500%26blend-mode%3Dnormal%26s%3Dba2cb9f1306bb6ace6ac5779512812ad)