はじめに インターフェースとか抽象クラスとか、使い方をよく分かっていませんでした。 色々試行錯誤してみて、最近その恩恵というものが分かってきたので、自分なりの解釈を記そうと思います。 その考え方は正しい、間違っているとか是非コメントお待ちしております。 今回は言語はC#で書きます。 JavaやPHPといった他のオブジェクト指向言語でも基本は通じるのでパッと見わかるような内容になっていると思います。 最初にインターフェース、抽象メソッドについて概要。 その次に実際のコードとしてどう活用していくかを記していきます。 そもそもインターフェースとか抽象クラスってなんぞや まず、コードベースで見ていきます。
![インターフェースと抽象クラスの使い分け、活用方法 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/ec958904f0b9d2a7fbb1a62a24f6dc6e2307b741/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgyJUE0JUUzJTgzJUIzJUUzJTgyJUJGJUUzJTgzJUJDJUUzJTgzJTk1JUUzJTgyJUE3JUUzJTgzJUJDJUUzJTgyJUI5JUUzJTgxJUE4JUU2JThBJUJEJUU4JUIxJUExJUUzJTgyJUFGJUUzJTgzJUE5JUUzJTgyJUI5JUUzJTgxJUFFJUU0JUJEJUJGJUUzJTgxJTg0JUU1JTg4JTg2JUUzJTgxJTkxJUUzJTgwJTgxJUU2JUI0JUJCJUU3JTk0JUE4JUU2JTk2JUI5JUU2JUIzJTk1JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1kNzY3YjI1ZjIwNjY5NDVjMGVlODA1ZmFjMTA1NzJkNw%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwaWdheWFtYWd1Y2hpJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1lODk5Y2FlODZhMzc5YzFjNzQ4NTY0YWE0MzAxYzhiYw%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D01f13fd6520beea343a26a8f42b1b669)