12,925
回編集
331行目: | 331行目: | ||
<br> | <br> | ||
例えば、標準ライブラリのIEquatable<T>インターフェイス(System名前空間)について、異なる型・引数で複数実装できる。<br> | 例えば、標準ライブラリのIEquatable<T>インターフェイス(System名前空間)について、異なる型・引数で複数実装できる。<br> | ||
AとBの2つのクラスがある時、IEquatable<A>とIEquatable<B>という2つの実装を持つことができる。<br> | AとBの2つのクラスがある時、IEquatable<A>とIEquatable<<nowiki>B</nowiki>>という2つの実装を持つことができる。<br> | ||
<br> | <br> | ||
具体的な用途として、以下のような場面で有効である。<br> | 具体的な用途として、以下のような場面で有効である。<br> | ||
337行目: | 337行目: | ||
* Shapeクラスから派生した矩形型Rectangleクラスがある。<br>Rectangleクラスは、縦横の両方の比較で等値判定する。 | * Shapeクラスから派生した矩形型Rectangleクラスがある。<br>Rectangleクラスは、縦横の両方の比較で等値判定する。 | ||
* Shapeクラスから派生した円型Circleクラスがある。<br>Circleクラスは、半径の比較で等値判定する。 | * Shapeクラスから派生した円型Circleクラスがある。<br>Circleクラスは、半径の比較で等値判定する。 | ||
* | * Shapeクラスは、矩形同士、円同士でのみ等値判定する。<br>型が異なる場合は、その時点で不一致となる。 | ||
<br> | <br> | ||
この条件下において、各クラスに以下のようなインターフェイスを持つことができる。<br> | この条件下において、各クラスに以下のようなインターフェイスを持つことができる。<br> |