teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

修正

2020/10/08 07:44

投稿

ozwk
ozwk

スコア13553

answer CHANGED
@@ -10,9 +10,8 @@
10
10
 
11
11
  > 実運用のためには必ず当該インターフェースを実装したクラスを作る必要がある、と考えていました。
12
12
 
13
- 「実運用」の指すところが曖昧ですが、
14
- `IList<T>`インターフェース実装したクラスのインスタンスは`IList<T>`型として扱えます
13
+ 「実運用」の指すところが曖昧ですが、使う側からしたら、「この型にはこういう名前、引数、返り値のメソッドがある」だけわかってればいいので、変数の型がインターフェースであっても何ら問題ありません。もちろん、その変数の中身は実装クラスである必要があります
15
- すなわち、`IList<T>`型の変数に代入可能です。そして`List<T>`は`IList<T>`を実装しています。
14
+ そして`List<T>`は`IList<T>`を実装しています。
16
15
 
17
16
  というか、インターフェース型の変数(メソッドの引数含む)を使わないなら
18
17
  インターフェースを使う意味がありません。