私はそれに関連すると言うことができます。OOとC#について初めて学び始めたとき、私もインターフェイスを取得しませんでした。それで大丈夫です。インターフェースの便利さを評価するようなものに出会うだけです。
2つのアプローチを試してみましょう。そして、一般化を許してください。
試す1
あなたは英語を母国語としています。英語が母国語ではない別の国に行きます。助けが必要です。あなたはあなたを助けることができる誰かが必要です。
「ねえ、あなたはアメリカで生まれましたか?」と尋ねますか?これは継承です。
または「ねえ、あなたは英語を話しますか」と尋ねますか?これはインターフェースです。
それが何をするのかを気にするなら、インターフェイスに頼ることができます。何であるかを気にする場合、継承に依存します。
継承に依存しても構いません。英語を話し、お茶が好きで、サッカーが好きな人が必要な場合は、ブリットを頼むほうがいいでしょう。:)
2を試す
OK、別の例を試してみましょう。
さまざまなデータベースを使用し、それらを操作するには抽象クラスを実装する必要があります。DBベンダーからのクラスにクラスを渡します。
public abstract class SuperDatabaseHelper
{
void Connect (string User, string Password)
}
public abstract class HiperDatabaseHelper
{
void Connect (string Password, string User)
}
多重継承ですか?上記のケースで試してみてください。できません。コンパイラは、どのConnectメソッドを呼び出そうとしているかを知りません。
interface ISuperDatabaseHelper
{
void Connect (string User, string Password)
}
interface IHiperDatabaseHelper
{
void Connect (string Password, string User)
}
これで、少なくともC#で-明示的にインターフェイスを実装できる、作業できるものがあります。
public class MyDatabaseHelper : ISuperDatabaseHelper, IHiperDatabaseHelper
{
IHiperDataBaseHelper.Connect(string Password, string User)
{
//
}
ISuperDataBaseHelper.Connect(string User, string Password)
{
//
}
}
結論
例は最適ではありませんが、私はそれがポイントを得ると思います。
インターフェイスの必要性を感じたときにのみ、インターフェイスを「取得」します。彼らまであなたは彼らがあなたのためではないと思うでしょう。