哪吒2之魔童闹海|哪吒2之魔童归来免费观看|哪吒2在线观看|哪吒2魔童闹海电影免费观看|哪吒2免费观看完整版大电影|哪吒1免费观看完整版

新疆軟件開發(fā)

本站首頁 軟件開發(fā) 成功案例 公司新聞 公司簡介 客服中心 軟件技術(shù) 網(wǎng)站建設(shè)
  您現(xiàn)在的位置: 新疆二域軟件開發(fā)公司 >> .Net技術(shù) >> 文章正文

c#中的interface abstract與virtual學(xué)習(xí)

1.只提供一些方法規(guī)約,不提供方法主體
  如
  public interface IPerson
 {
  void getName();//不包含方法主體
  }
2.方法不能用public abstract等修飾,無字段變量,無構(gòu)造函數(shù)。
3.方法可包含參數(shù)
  如  
  public interface IPerson
  {
   void getAge(string s);
  }

  一個(gè)例子(例1):
  public interface IPerson
  { 
   IPerson();              //錯(cuò)誤
   string name;            //錯(cuò)誤
   public void getIDcard();//錯(cuò)誤

   void getName();         //right
   void getAge(string s);  //right
   }

實(shí)現(xiàn)interface的類
1.與繼承類的格式一致,如 public class Chinese:IPerson{}
2.必須實(shí)現(xiàn)interface中的各個(gè)方法

   例2,繼承例1
    public class Chinese:IPerson
  { 
   public Chinese(){}             //添加構(gòu)造
   public void getName(){}        //實(shí)現(xiàn)getName()
   public void getAge(string s){} //實(shí)現(xiàn)getAge()
   }

abstract聲明抽象類、抽象方法
1.抽象方法所在類必須為抽象類
2.抽象類不能直接實(shí)例化,必須由其派生類實(shí)現(xiàn)。
3.抽象方法不包含方法主體,必須由派生類以override方式實(shí)現(xiàn)此方法,這點(diǎn)跟interface中的方法類似

  如
  public abstract class Book
 {
  public Book()
  {   
     }

 public abstract void getPrice();      //抽象方法,不含主體
        public virtual void getName()   //虛方法,可覆蓋
        {
      Console.WriteLine("this is a test:virtual getName()");
             }
        public virtual void getContent()   //虛方法,可覆蓋
{
      Console.WriteLine("this is a test:virtual getContent()");
             }
 public void getDate()                           //一般方法,若在派生類中重寫,須使用new關(guān)鍵字
        {
      Console.WriteLine("this is a test: void getDate()");
             }
  }

  public class JavaBook:Book
  {
      public override void getPrice()   //實(shí)現(xiàn)抽象方法,必須實(shí)現(xiàn)
      {
  Console.WriteLine("this is a test:JavaBook override abstract getPrice()");
  }
      public override void getName()   //覆蓋原方法,不是必須的
      {
  Console.WriteLine("this is a test:JavaBook override virtual getName()");
  }
  }

 測試如下:
 public class test
  {
   public test()
   {
    JavaBook jbook=new JavaBook();
    jbook.getPrice();      //將調(diào)用JavaBook中g(shù)etPrice()
    jbook.getName();       //將調(diào)用JavaBook中g(shù)etName()
    jbook.getContent();    //將調(diào)用Book中g(shù)etContent()
    jbook.getDate();       //將調(diào)用Book中g(shù)etDate()
    
   }
   public static void Main()
   {test t=new test();
   }
  }

virtual標(biāo)記方法為虛方法
1.可在派生類中以override覆蓋此方法
2.不覆蓋也可由對象調(diào)用
3.無此標(biāo)記的方法(也無其他標(biāo)記),重寫時(shí)需用new隱藏原方法

abstract與virtual: 方法重寫時(shí)都使用 override 關(guān)鍵字
interface中的方法和abstract方法都要求實(shí)現(xiàn)
作者:未知 | 文章來源:未知 | 更新時(shí)間:2007-12-18 14:20:19

  • 上一篇文章:

  • 下一篇文章:

  • 相關(guān)文章:
    C#實(shí)現(xiàn)短信發(fā)送程序的例子
    .net學(xué)習(xí):c#事件的深入分析
    基礎(chǔ)學(xué)習(xí):java中使用存儲過程
    C#如何設(shè)置或者獲取目錄的權(quán)限?
    解析c#語言和java語言最相似的地方
    C#中如何才能調(diào)用QTP自動(dòng)化對象
    C#如何轉(zhuǎn)換AVI文件為BMP位圖文件
    c#如何連接各類數(shù)據(jù)庫
    C#abstact interface 學(xué)習(xí)
    C++函數(shù)對象count_if
    軟件技術(shù)
    · 開發(fā)語言
    · Java技術(shù)
    · .Net技術(shù)
    · 數(shù)據(jù)庫開發(fā)
    最新文章  
    ·.net技術(shù) asp.net MVC3 Vi
    ·.net將視頻文件格式轉(zhuǎn)換成
    ·NET Framework 2.0 Servic
    ·如何動(dòng)態(tài)修改winform的app
    ·asp,net軟件結(jié)構(gòu)設(shè)計(jì)和相關(guān)
    ·學(xué)習(xí)怎樣使用ASP.NET中的虛
    ·,net基礎(chǔ)類的學(xué)習(xí):system
    ·.net學(xué)習(xí):c#事件的深入分
    ·Facade Pattern學(xué)習(xí)總結(jié)
    ·C#如何設(shè)置或者獲取目錄的
    ·如何使用XSL來定義ASP.NET
    ·理解WCF Data Contract契約
    ·如何能在.net2.0開發(fā)的控件
    ·模式怎樣使用,講解模式的
    ·如何解決Menu菜單被frame遮
    關(guān)于我們 | 軟件開發(fā) | 下載試用 | 客服中心 | 聯(lián)系我們 | 友情鏈接 | 網(wǎng)站地圖 | 新疆電子地圖 | RSS訂閱
    版權(quán)所有 © 2016 新疆二域軟件開發(fā)網(wǎng) www.pg11qqq.com All Rights Reserved 新ICP備14003571號
    新疆軟件開發(fā)總機(jī):0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯(lián)大廈A-5C 郵編:830000