国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

什么是接口(入門篇)

2019-11-14 15:45:25
字體:
來源:轉載
供稿:網友

上學的時候,學校的老師,總會用一些簡單的例子來解釋什么是接口(interface)

這些例子可能像是這樣

/// <summary>/// 一個表示動物的接口/// </summary>public interface IAnimal{    /// <summary>    /// 所有的動物都要吃東西    /// </summary>    void Eat();}

然后再隨便上一個小動物,比如像這樣的

public class Cat : IAnimal{    public void Eat()    {        Console.WriteLine("我是小貓,我要吃魚")    }}

然后對接口的解釋也基本上就結束了,隨著一些作業和考試,我們只知道,接口是這么一個沒有實現任何方法,只定義了方法內容的東西。

具體有什么用呢?也許只是覺得當有一些對象能夠形成像動物這樣的樹形圖的時候,我們才會在樹根的位置放置一個接口。

 

然后

接口的作用并不體顯在什么小動物、載具、或是人這種對象樹上

 

 

先說一種最簡單的接口設計情形:功能向接口

我們的程序里涉及到很多對象,但這些對象都有一個共同的功能——銷售,擁有一個價格,是否參加折扣活動,以及折后價格

那么,我們可以針對這項“功能”設計一個接口

/// <summary>/// 表示一個可以用于銷售的功能接口/// </summary>public interface ISaleable{    /// <summary>    /// 價格    /// </summary>    int PRice { get; }    /// <summary>    /// 是否可以參加折扣    /// </summary>    bool CanDiscount { get; }    /// <summary>    /// 折后價格    /// </summary>    int DiscountedPrice {get;}}

有了這么一個接口以后,我們就可以做使用這個“接口”的方法了

比如我們做一個銷售員的對象,除去那些姓名、員工號一類的屬性不談,至少它應當擁有一個方法,叫Sell,我們來看代碼

public class Seller{    void Sell(ISaleable good)    {        if (good.CanDiscount)        {            Console.Write("您好,你所購買的產品可以參加折扣。折扣的價格是{0}", good.DiscountedPrice);        }        else        {             Console.WriteLine("您好,你所購買的產品沒有參加任何折扣,只能按照原價{0}進行購買",good.Price)        }    }}

于是,我們有了一個功能接口,可以使用了該功能的類型,那么,現在讓我們像上大學那樣,隨便建幾個類型吧

public class Car : ISaleable{    public int Price    {        get { return 100000; }    }    public bool CanDiscount    {        get { return false; }    }    /// <summary>    /// 由于該類型不可以有折扣,所以折后價格是可以不實現的    /// </summary>    public int DiscountedPrice    {        get { throw new NotImplementedException(); }    }}public class Compute : ISaleable{    public int Price    {        get { return 5000; }    }    public bool CanDiscount    {        get { return true; }    }    public int DiscountedPrice    {        get { return 5000 * 0.8; }    }}

這樣,銷售員就可以賣這兩樣商品了

 

在下一篇 《什么是接口(入門篇)——使你的程序功能豐富》 您還可以學習到接口更多的用法


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 图们市| 宁河县| 兴海县| 师宗县| 油尖旺区| 澄城县| 同心县| 大新县| 万宁市| 辽源市| 全南县| 富源县| 屏东市| 阿城市| 辽宁省| 新田县| 罗定市| 姚安县| 麻江县| 淮阳县| 博爱县| 来安县| 吴堡县| 墨竹工卡县| 吴堡县| 鲁山县| 上蔡县| 安阳市| 诏安县| 凌云县| 双柏县| 平顶山市| 凯里市| 荣成市| 保靖县| 翁牛特旗| 建平县| 通城县| 高台县| 东台市| 新丰县|