继承之接口知识点和思考练习
生活随笔
收集整理的這篇文章主要介紹了
继承之接口知识点和思考练习
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
知識點
接口是一種數據結構,它包含了一組函數型方法,通過這組數據結構,用戶代碼可以調用組件的功能。
訪問修飾符 interface 接口名
{
??? 接口體
}
接口聲明時,注意一下幾個方面:
1)訪問修飾符只能是new public protected internal private中的一種
2)接口名以大寫字母"I"開頭
3)接口體只限于方法、屬性、事件和索引器的聲明,不能包括構造函數、析構函數、常數和字段等
4)接口不能包含任何實現方法
5)在接口體中聲明方法時,不能包含public修飾符,也不能包含除new修飾符以外的其他修飾符。只需給出返回類型、方法名和參數列表,并以分號結束。
C#語言中一個類只可以繼承一個基類,但可以允許多重接口實現,即一個類可以同時實現多個接口(繼承多個接口)。當繼承基類和多接口時,基類是繼承列表中的第一項。
如果一個類實現了(繼承了)兩個接口,且這兩個接口包含具有相同名稱的方法,那么在類中實現該方法將導致兩個接口都使用該方法作為它們的實現,就會出現不確定情況。C#
中可以顯式地實現接口方法,通過接口名稱和一個點來命名方法以確定成員方法實現的是哪一個接口。
?
思考練習
using System; namespace InterfaceName {public class BaseClass{protected static double x, y;protected const double PI = Math.PI;public BaseClass(double x1, double y1){x = x1;y = y1;}public void Show(){Console.WriteLine("這里是調用BaseClass類的show方法");}}public interface IFunction1{double Area();}public class Sphere : BaseClass, IFunction1{public Sphere(double x, double y) : base(x, y) { }public double Area(){return BaseClass.PI * BaseClass.x * BaseClass.y;}}public class Program{static void Main(){Sphere sphere1 = new Sphere(6, 7);Console.WriteLine("The sphere's area is {0}", sphere1.Area());Console.ReadLine();}}}using System; namespace InterfaceName {public class BaseClass{protected static double x, y;protected const double PI = Math.PI;public BaseClass(double x1, double y1){x = x1;y = y1;}public void Show(){Console.WriteLine("這里是調用BaseClass類的show方法");}}public interface IFunction1{double Area();}public interface IFunction2{double Area();}public class Sphere : BaseClass, IFunction1, IFunction2{public Sphere(double x, double y) : base(x, y) { }double IFunction1.Area()//一旦用了這種方式,就不能加訪問修飾符{return BaseClass.PI * BaseClass.x * BaseClass.y;}double IFunction2.Area(){return BaseClass.PI * BaseClass.x * BaseClass.x;}}public class Program{static void Main(){Sphere sphere1 = new Sphere(6, 7);//繼承了兩個接口,兩個接口又有相同名的方法,必須通過定義接口的對象(看似如此),再將派生類的對象賦予它,由接口對象進行訪問各自的方法IFunction1 ifn1 = sphere1;Console.WriteLine("The sphere's area is {0}", ifn1.Area());IFunction2 ifn2 = sphere1;Console.WriteLine("The sphere's area is {0}", ifn2.Area());Console.ReadLine();}}}
轉載于:https://www.cnblogs.com/365up/archive/2009/09/25/1574251.html
總結
以上是生活随笔為你收集整理的继承之接口知识点和思考练习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 肉蟹煲加盟多少钱啊?
- 下一篇: 面试题(C++09:Autodesk)