C# - インターフェース
メソッドやプロパティといった外部とのインターフェースの引数や戻り値の形式を予め決めておくもの。メソッドやプロパティの実際の処理は各クラスの定義で行う。
あるインターフェースを継承したクラスは、そのインターフェースで定義したメソッドやプロパティを持つことが保証される。クラスの継承と異なり、複数のインターフェースを継承することができる。
using System; //インターフェース interface Adder { double Add(double x, double y); double Sub(double x, double y); } interface Multiplier { double X {get;} double Y {get;} double Mul(double x, double y); } class MyClass1 : Adder { public double Add(double x, double y) { return x + y; } public double Sub(double x, double y) { return x * y; } } class MyClass2 : Adder, Multiplier { private double x = 1.0; private double y = 1.0; public double Add(double x, double y) { this.x = x; this.y = y; return x + y; } public double Sub(double x, double y) { this.x = x; this.y = y; return x * y; } public double X { get{ return this.x; } } public double Y { get{ return this.y; } } public double Mul(double x, double y) { this.x = x; this.y = y; return x * y; } } class MyMain { static void Main(string[] args) { MyClass1 m1 = new MyClass1(); Console.WriteLine(m1.Add(1.0, 2.0)); // 3 Console.WriteLine(m1.Sub(3.0, 4.0)); // 12 MyClass2 m2 = new MyClass2(); Console.WriteLine(m2.Add(1.0, 2.0)); // 3 Console.WriteLine(m2.Sub(3.0, 4.0)); // 12 Console.WriteLine(m2.Mul(5.0, 6.0)); // 30 Console.WriteLine(m2.X); // 5 Console.WriteLine(m2.Y); // 6 } }