インタフェース実装マルチステート
4273 ワード
継承には一本性という特徴があるため、つまり一つのクラスは一つの親としか継承できないが、时には私たちは複数のクラスを継承する必要がある.それでは私はこのようにインタフェースの出現があり、インタフェースの実現は一つのクラスが複数のクラスを継承できるようにし、継承した複数のクラスは実際には継承のインタフェースである.
インタフェースはinterfaceキーワードを使用してクラスがいくつかのインタフェースであることを表します
インタフェースの特徴
1、インタフェースのメンバーには何の実装もできません(「何も言わない」で、実装されていないメンバーのセットを定義しているだけです).2、マルチステートのためです.インタフェースはインスタンス化できません.すなわち、インタフェースはnew(オブジェクトを作成できない)3、1つのクラスが1つのインタフェースを継承している限り、このクラスはこのインタフェースのすべてのメンバー4を実現しなければならない.インタフェースのメンバーは「アクセス修飾子」を付けることができず、インタフェースのメンバーアクセス修飾子はpublicと黙認し、修正できない.5、インタフェースにはメソッド、プロパティ、インデックス、イベントのみがあり、「フィールド」とコンストラクション関数はありません.6、インタフェースとインタフェースの間で継承することができて、しかも多く7を継承することができて、インタフェースは1つのクラスを継承することができなくて、クラスはインタフェースを継承することができて(インタフェースはインタフェースに継承することができて、クラスはインタフェースを継承することができて、クラスを継承することができて、1つのクラスは同時に1つのクラスを継承して複数のインタフェースを実装することができて、それでは文法上AはIAの前に書かなければなりません.
同じようにMainメソッドで呼び出します
インタフェースと抽象クラスの実装の多態は似ていることがわかりますが、インタフェースがより重視しているのは方法の実装です.
上記のインタフェースとインタフェースの間で継承でき、インタフェースが複数のインタフェースを継承できる場合、1つのクラスが複数の継承インタフェースを継承する場合、このクラスではすべての継承チェーン上のメソッドをすべて実装する必要があります.
下の味噌紫のようです——————
インタフェースはinterfaceキーワードを使用してクラスがいくつかのインタフェースであることを表します
インタフェースの特徴
1、インタフェースのメンバーには何の実装もできません(「何も言わない」で、実装されていないメンバーのセットを定義しているだけです).2、マルチステートのためです.インタフェースはインスタンス化できません.すなわち、インタフェースはnew(オブジェクトを作成できない)3、1つのクラスが1つのインタフェースを継承している限り、このクラスはこのインタフェースのすべてのメンバー4を実現しなければならない.インタフェースのメンバーは「アクセス修飾子」を付けることができず、インタフェースのメンバーアクセス修飾子はpublicと黙認し、修正できない.5、インタフェースにはメソッド、プロパティ、インデックス、イベントのみがあり、「フィールド」とコンストラクション関数はありません.6、インタフェースとインタフェースの間で継承することができて、しかも多く7を継承することができて、インタフェースは1つのクラスを継承することができなくて、クラスはインタフェースを継承することができて(インタフェースはインタフェースに継承することができて、クラスはインタフェースを継承することができて、クラスを継承することができて、1つのクラスは同時に1つのクラスを継承して複数のインタフェースを実装することができて、それでは文法上AはIAの前に書かなければなりません.
//
// , ,
public interface ISwimming
{
void Swim();
}
public class RealDuck:ISwimming
{
public void Swim()
{
Console.WriteLine(" ");
}
}
public class XPDuck : ISwimming
{
public void Swim()
{
Console.WriteLine(" ");
}
}
public class MuDuck
{
// ,
}
同じようにMainメソッドで呼び出します
static void Main(string[] args){
ISwimming swim = new XPDuck();//new RealDuck();
swim.Swim();
//
}
インタフェースと抽象クラスの実装の多態は似ていることがわかりますが、インタフェースがより重視しているのは方法の実装です.
上記のインタフェースとインタフェースの間で継承でき、インタフェースが複数のインタフェースを継承できる場合、1つのクラスが複数の継承インタフェースを継承する場合、このクラスではすべての継承チェーン上のメソッドをすべて実装する必要があります.
下の味噌紫のようです——————
public interface M1
{
void Test1();
}
public interface M2
{
void Test2();
}
public interface M3
{
void Test3();
}
//
public interface SupperInterface : M1, M2, M3
{
}
// ,
public class Car : SupperInterface
{
public void Test1()
{
throw new NotImplementedException();
}
public void Test2()
{
throw new NotImplementedException();
}
public void Test3()
{
throw new NotImplementedException();
}
}