麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C# > 正文

c# 接口interface基礎入門小例子

2020-01-24 03:27:12
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

  /// <summary>
    /// interface
    /// 與抽象類的區別:
    /// 1,abstract可以有具體方法和抽象方法(必須有一個抽象方法),interface沒有方法實現
    /// 2,abstract可以有構造函數和析構函數,接口不行
    /// 3,一個類可以實現多個interface,但只能繼承一個abstract
    /// 特點:
    /// interface成員隱式具有public,所以不加修飾符
    /// 不可以直接創建接口的實例,如:IPerson xx=new IPerson()//error
    /// </summary>
    public interface IPerson
    {
        string Name { get; set; }//特性
        DateTime Brith { get; set; }
        int Age();//函數方法
    }
    interface IAdderss
    {
        uint Zip { get; set; }
        string State();
    }

復制代碼 代碼如下:

   /// <summary>
    /// interface實現interface
    /// </summary>
    interface IManager:IPerson
    {
        string Dept { get; set; }
    }
    /// <summary>
    /// 實現多個interface
    /// 實現哪個interface必須寫全實現的所有成員!
    /// </summary>
    public class Employee:IPerson,IAdderss
    {
        public string Name { get; set; }
        public DateTime Brith { get; set; }
        public int Age()
        {
            return 10;
            throw new NotImplementedException();
        }
        public uint Zip { get; set; }
        public string State()
        {
            return "alive";
        }
    }

復制代碼 代碼如下:

/// <summary>
     /// 重寫接口實現:
     /// 如下,類 Employer 實現了IPerson,其中方法 Age() 標記為virtual,所以繼承于 Employer 的類可以重寫  Age()
     ///
     /// </summary>
     public class Employer:IPerson
     {
         public string Name { get; set; }
         public DateTime Brith { get; set; }
         public virtual int Age()
         {
             return 10;
         }
     }
     public class work:Employer
     {
         public override int Age()
         {
             return base.Age()+100;//其中base是父類
         }
     }

實現,對象與實例:

復制代碼 代碼如下:

       #region #interface

             Employee eaji = new Employee()
                 {
                     Name = "aji",
                     Brith = new DateTime(1991,06,26),
                 };

             #endregion
             #region #interface 的強制轉換

             IPerson ip = (IPerson)eaji; //可以通過一個實例來強制轉換一個接口的實例,進而訪問其成員,
             ip.Age();
             DateTime x=ip.Brith;

             //也可以寫成這樣:
             IPerson ip2 = (IPerson) new Employee();

             //但是這樣子有時候不是很安全,我們一般用is 和 as來強制轉換:
             if (eaji is IPerson)
             {
                 IPerson ip3 = (IPerson)eaji;
             }
             //但is并不是很高效,最好就是用as:
             IPerson ip4 = eaji as IPerson;
             if (ip4 != null)//用as時,如果發現實現ip4的類沒有繼承 IPerson,就會返回null
             {
                 Console.WriteLine(ip4.Age());
             }

             #endregion

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产大片免费看 | 欧美日韩成人一区二区 | 全黄性性激高免费视频 | 日韩黄色一区 | 日韩激情| 国产日韩欧美 | 中文日产幕无线码6区免费版 | 国产精品麻豆91 | 美女黄视频在线观看 | 亚洲国产精品久久久久 | 免费观看一级黄色片 | 欧美成人免费电影 | 欧美成人免费一级 | 亚洲aⅴ免费在线观看 | 精品一区二区免费视频视频 | 色就操| 久久久久99一区二区三区 | 欧美aⅴ视频| 国产porn在线 | 亚洲视色| 国产精品视频yy9299一区 | 欧美特黄一级高清免费的香蕉 | 网站激情 | 91 成人| 色无极影院亚洲 | 香蕉久草在线 | 日韩一级片毛片 | 欧美成人一区二区三区电影 | 国产精品99久久久久久大便 | 调教小男生抽打尿孔嗯啊视频 | 国产91久久精品 | omofun 动漫在线观看 | 欧美成在线视频 | 98国内自拍在线视频 | 精品中文视频 | 日本黄色大片免费 | 国产一区二区三区在线视频 | 成人免费久久 | 亚洲国产视频在线 | 亚洲一级簧片 | 羞羞视频在线免费 |