日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

继承之接口知识点和思考练习

發(fā)布時間:2023/12/1 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 继承之接口知识点和思考练习 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

知識點

接口是一種數(shù)據(jù)結(jié)構(gòu),它包含了一組函數(shù)型方法,通過這組數(shù)據(jù)結(jié)構(gòu),用戶代碼可以調(diào)用組件的功能。

訪問修飾符 interface 接口名
{
??? 接口體
}

接口聲明時,注意一下幾個方面:
1)訪問修飾符只能是new public protected internal private中的一種
2)接口名以大寫字母"I"開頭
3)接口體只限于方法、屬性、事件和索引器的聲明,不能包括構(gòu)造函數(shù)、析構(gòu)函數(shù)、常數(shù)和字段等
4)接口不能包含任何實現(xiàn)方法
5)在接口體中聲明方法時,不能包含public修飾符,也不能包含除new修飾符以外的其他修飾符。只需給出返回類型、方法名和參數(shù)列表,并以分號結(jié)束。

C#語言中一個類只可以繼承一個基類,但可以允許多重接口實現(xiàn),即一個類可以同時實現(xiàn)多個接口(繼承多個接口)。當繼承基類和多接口時,基類是繼承列表中的第一項。

如果一個類實現(xiàn)了(繼承了)兩個接口,且這兩個接口包含具有相同名稱的方法,那么在類中實現(xiàn)該方法將導致兩個接口都使用該方法作為它們的實現(xiàn),就會出現(xiàn)不確定情況。C#
中可以顯式地實現(xiàn)接口方法,通過接口名稱和一個點來命名方法以確定成員方法實現(xiàn)的是哪一個接口。

?

思考練習

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("這里是調(diào)用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("這里是調(diào)用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();}}}

轉(zhuǎn)載于:https://www.cnblogs.com/365up/archive/2009/09/25/1574251.html

總結(jié)

以上是生活随笔為你收集整理的继承之接口知识点和思考练习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。