當遇到繼承多介面,介面間又有相同方法時,如兩個方法都想要實做,就要強制介面實作。
怎麼做? 就是指定其中一個明確的方法界面,如 IA.method();
注意,強制實作介面不允許宣告時指定修飾詞,因為存取層級一律是public !!
- namespace 練習用
- {
- class Program
- {
- static void Main(string[] args)
- {
- ///實作多重介面 且有相同方法
- ///
- Messure mess = new Messure();
- mess.length(5);
- mess.area(5);
- Itri trimess = mess as Itri; //as 會將mess轉型,如不能轉回傳null
- trimess.length(5);
- trimess.area(5);
- }
- interface Isqure
- {
- void length(double L);
- void area(double L);
- }
- interface Itri
- {
- void length(double L);
- void area(double L);
- }
- class Messure : Isqure, Itri
- {
- //實作正方形介面
- public void length(double L)
- {
- double length;
- length = 4 * L;
- Console.WriteLine("種方形周長 : {0}", length);
- }
- public void area(double L)
- {
- double area;
- area = L * L;
- Console.WriteLine("正方形面積 : {0}", area);
- }
- //實作三角形濟面 強制介面實作 不可以有指定修飾詞
- void Itri.length(double L)
- {
- double length;
- length = 3 * L;
- Console.WriteLine("種方形周長 : {0}", length);
- }
- void Itri.area(double L)
- {
- double area;
- area = 0.5 * L * Math.Pow(3, 0.5) * L / 2;
- Console.WriteLine("正方形面積 : {0}", area);
- }
- }
沒有留言:
張貼留言