C# 入門 & 実践 / C sharp
3-20. Interface / インターフェイスの実装
インターフェイスと抽象化クラス( abstract )のどちらを使うか?
規定のメソッドを宣言して、実装するクラスでメソッドの実体を書くという点では、同じような使い方になります。
インターフェイスのポイント:複数のインターフェイスを実装できる!
これが大きな違いです。
実際にやってみます。
class HelloBase{}
class HelloBase2{}
interface IHello{
//void Goodbye();
int X { get;set; }
}
interface IGood : IHello
{
void Good();
}
// 当然 class からは、継承できない。
// interface IBad : Hello
interface IBad : IHello
{
void Bad();
}
// IHello のメソッドを実装した Hello
class Hello:IHello
{
private int x;
public int X
{
get { return x; }
set { x = value; }
}
public void Goodbye()
{
Console.WriteLine("Goodbye");
}
}
// Helloを継承、さらに、2つのインターフェイスを実装!
// IHello の分は、Hello に実装されているので書かない。
class GoodBad : Hello,IGood,IBad
{
public void Good()
{
Console.WriteLine("Good");
}
public void Bad()
{
Console.WriteLine("Bad");
}
public void Goodbye() { }
}
class Tester
{
static void Main(string[] args)
{
Hello h = new Hello();
h.Goodbye();
GoodBad gb = new GoodBad();
gb.Bad();
gb.Good();
gb.Goodbye();
}
}
というように、実装します。
次は、Interface の利用方法を見たいと思います。
3-19. 構造体( struct ) とクラス( class )の違い。 «
3. C# 入門 / 基礎、型、文法、基本? »
3-21. インターフェイス / キャストして使用 / is , as /
C# 入門 & 実践 / C sharp