Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9683

インターフェースについて

$
0
0

インターフェースとは

 具体的な処理の内容は書かず、クラスが実装すべき規約(そのメソッドで何を呼び出すことが出来るのか)を定めるもの。つまり、クラスでどんなメソッドを実装する必要があるかという構造だけを定めた、論理的な存在。

存在価値は?

・「このインターフェースを使うときはこのメソッドの中身を必ず作ってね!」とか、「そのメソッドには、必ずこんな引数を渡してね!」などとメソッドの実装を強制できる。
・複数のクラスが同じインターフェースについて、それぞれ異なる処理内容を実装することが出来る。(ポリモーフィズム)

使用例

interfaceの定義例

publicinterfaceISeriees{   intGetNext();voidReset();voidSetStart(intx);}

見てわかる通り、どのメソッドにも処理は実装されていない。その代わりに、インターフェースを実装するクラスでは、そのインターフェースに含まれるすべてのメソッドを実装する必要がある。

interfaceを実装するクラスの例

classByTwos:ISeries{intstart;intval;publicByTwos(){start=0;val=0;}publicintGetNext(){val+=2;returnval;}publicvoidReset(){start=0;val=0;}publicvoidSetStart(intx){start=x;val=x;}}

定義したインターフェースを1つ以上のクラスに実装することができる。ByTwosクラスが3つすべてのメソッドを実装していることからも分かる通り、インターフェースで定義したすべてのメンバーを実装する必要がある。いくつかのメソッドだけを使うといったことはできない。これは使う人それぞれがバラバラな使い方をしてしまうのを防ぐため。


Viewing all articles
Browse latest Browse all 9683

Trending Articles