抽象類

在C#中,C#容許把類和函數聲明爲abstract。ide

抽象類不能實例化,抽象類能夠包含普通函數和抽象函數,抽象函數就是隻有函數定義沒有函數體。顯然,抽象函數自己也是虛擬的virtual(只有函數定義,沒有函數實現)。函數

類是一個模板,那麼抽象類就是一個不完整的模板,咱們不能使用不完整的模板去構造對象。spa

先聲明一個抽象類Total:code

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace Abstract
 7 {
 8     abstract class Total
 9     {
10         private float speed;
11         public void Eat()
12         {
13         }
14 
15         public abstract void Fly();
16         //一個類中若是有一個抽象方法,那麼這個類必須被定義爲一個抽象類  一個抽象類就是一個不完整的模板,咱們不能夠用抽象類去實例化構造對象
17     }
18 }

而後再聲明這個抽象類的子類Bird:對象

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace Abstract
 7 {
 8     class Bird:Total//咱們成立一個抽象類的時候必須去實現抽象方法,給出方法體
 9     {
10         public override void Fly()//使用抽象方法時須要在返回類型前添加 override 複寫
11         {
12             Console.WriteLine("鳥在飛");
13         }
14     }
15 }

咱們在Program類中實現抽象類中的方法:blog

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace Abstract
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             Total b = new Bird();//咱們能夠利用抽象類去聲明對象,但咱們必須利用抽象類的子類去構造  Bird b=new Bird();
13             b.Fly();
14             Console.ReadKey();
15         }
16 
17         
18     }
19 }
相關文章
相關標籤/搜索