abstract:抽象類,是對某一類對象的抽象,繼承抽象類的類和抽象類是屬於關係ide
interface:接口,能夠說是一種規範,繼承接口的類表達則是,我繼承了這個接口,我能作什麼spa
舉個經常使用的例子:抽象一個animal類,馬(horse)繼承animal類,可是有一種馬叫天馬,他能飛。code
1 public abstract class Animal 2 { 3 public void EatFood() 4 { 5 //some code 6 } 7 } 8 9 public class Horse:Animal 10 { 11 //some code
15 } 16
public class FlyHorse:Horse,IFlyable
{
public void Fly()
{
//some code
}
}
17 public interface IFlyable 18 { 19 void Fly() ; 20 }
UML圖:對象
在abstract中能夠定義virtue方法和abstract方法,繼承的子類能夠經過override重寫方法blog
virtue和abstract不一樣的是abstract不能實現方法的主體,繼承抽象類的類必須實現抽象類中抽象方法繼承
經過virtue和override實現方法的重寫是C#多態的體現接口