一个完整的例子: using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { ///<summary> /// 接口的例子,接口是顶层设计////////////////////////// ///</summary> interface IAnimal //顶层接口 { void eating(); //接口中声明的方法,这里不可以用static,abstract修饰 } abstract class Bird :IAnimal //抽象类Bird继承了IAnimal接口 { public void eating() { Console.WriteLine("会吃!"); } //抽象类实现了接口的方法,且必须实现该方法 abstract public void flying(); //抽象类自己又定义了一个抽象方法 } class Chick : Bird //Chick类是抽象类Bird的派生类 { public int chibangnumber; public Chick() { Console.WriteLine("这是一个小鸡!"); chibangnumber = 2; } //实现了抽象类的flying方法,用override public override void flying() { Console.WriteLine("会飞行!"); } }; ///<summary> /// 多层次抽象类的例子,包含三层关系,抽象类A,抽象类B继承抽象类A,类C继承抽象类B /// 例子中的抽象类既包含抽象方法,也包含普通成员,还有构造函数 ///</summary> abstract class A //抽象类A的声明 { public int x; //普通公有成员 public A(int m) { x = m; } //抽象类A的构造函数 abstract public int fun1(); //抽象方法fun1()声明 } abstract class B : A //类B仍是抽象类 { public B(int m):base(1) { x = m; } //抽象类A的构造函数 abstract public int fun2(); //增加了一个抽象方法fun2() public abstract int px { get;set; } //定义抽象属性px,可读可写 public abstract int py { get; } //定义抽象属性py,只读 } class C: B //类C,继承于抽象类B,必须实现所有的抽象方法 { int y, z; public C(int x1, int y1):base(x1) //构造函数 { y = x1; z = y1; } public override int fun1() //抽象方法fun1实现 { return x * y; } public override int fun2() //抽象方法fun2实现 { return x / y; } public override int px //抽象属性px的实现 { get { try { return x+10; } catch {throw new Exception("The method or operation is not implemented."); } } set { try { x = value; } catch { throw new Exception("The method or operation is not implemented."); } } } public override int py //抽象属性py的实现 { get { try { return y-10; } catch{ throw new Exception("The method or operation is not implemented."); } } } } class Program //主程序 { static void Main(string[] args) { //类的使用 Chick ch = new Chick(); ch.eating(); ch.flying(); Console.WriteLine("翅膀个数是:{0}", ch.chibangnumber); //多层次抽象类举例 C c = new C(5,2); //创建类c的对象C Console.WriteLine("{0},{1}", c.fun1(),c.fun2()); Console.WriteLine("{0}", c.x); Console.WriteLine("{0},{1}", c.px,c.py); //调用抽象属性 } } } 运行结果: 这是一个小鸡! 会吃! 会飞行! 翅膀个数是2 25,1 5