BLOG

【新人ヤマちゃんの記録】8

こんにちは、新人のヤマちゃんです。

本日の学習内容をブログで振り返ります。

◆本日の内容

抽象クラスとインターフェイス

本日は抽象クラスとインターフェイスについて学習しました。
この2つは似たような機能をもっており、個人的に使い分けで悩むところでもあります。
本記事では、それぞれのコード例を紹介し使い分けをどのように考えればよいか記述していきます。

以下、コード例

抽象クラスを継承、もしくはインターフェイスを実装させると、実装すべきメソッドを強制できます。

ではこの2つの機能の使い分けはどうすればよいでしょうか。

要点は、多重継承できるか否かです。
クラスはひとつのスーパークラスしか継承できません。
一方、インターフェイスは複数、クラスに実装することが可能です。

結局どっちを使えばいいのか?
クラス仕様としての型定義したいならインタフェース。
継承関係にあって処理の再利用したいなら抽象クラス。
……
抽象クラスと派生クラスは「継承」の関係はIS A関係と呼ばれている対して、
インターフェイスと実装クラスの「実装」の関係はCAN DO関係と呼ばれているそうです。

(引用:インタフェースと抽象クラスどっち使ったらいいんだ?

 

クラスの継承(例: 抽象クラスと派生クラスの「継承」の関係)は ISA関係
A extends B
A は Bの一種と見なせる
—-
インタフェースの実装(例:インターフェイスと実装クラスの「実装」の関係)は CAN DO関係
A implements B
A は Bのメソッドが実行できる

(引用:インターフェイス(interface)と抽象(abstract)クラス

上記の記事では 抽象クラスとインターフェイスの使い分けが簡潔に書かれています。
適切に使い分けていきましょう。

◆所感

個人的には、インターフェイスのほうがシンプルでわかりやすいので好きです。

◆さいご一言

スプラトゥーン2のベッチューブキが楽しみですね。

BLOGトップへ戻る