abstract类总结 abstract类中可以有非抽象方法和字段abstract类中可以有构造函数abstract类中可以没有抽象方法abstract类不可以被实例化 using System; using System.Collections; //#region abstract one //namespace MyEx //{ // public abstract class Animal // { // public abstract void Eat(); // public int number = 2; // public void Fly() // { // Console.WriteLine("I can't fly......"); // } // } // public class Cow : Animal // { // protected string _name; // public Cow(string name) // { // this._name = name; // } // public override void Eat() // { // Console.WriteLine("The " + this._name + " is eating.... "); // Console.WriteLine("There is " + number + " Cows....."); // Fly(); // } // } // public class Chicken : Animal // { // protected string _name; // public Chicken(string name) // { // this._name = name; // } // public override void Eat() // { // Console.WriteLine("The " + this._name + " is eating....."); // } // } // public class Demo // { // public static void Main(string[] args) // { // Cow cow = new Cow("cow"); // Animal chicken = new Chicken("chicken"); // //ArrayList animal = new ArrayList(); // //animal.Add(cow); // //animal.Add(chicken); // //((Animal)animal[0]).Eat(); // //((Animal)animal[1]).Eat(); // chicken.Eat(); // } // } //} //#endregion //#region abstract two //namespace MyEx //{ // public abstract class Animal // { // protected string _name; // public Animal(string name) // { // this._name = name; // } // public abstract void Eat(); // public int number = 2; // public void Fly() // { // Console.WriteLine("I can't fly......"); // } // } // public class Cow : Animal // { // //protected string _name; // public Cow(string name):base(name) // { // //this._name = name; // } // public override void Eat() // { // Console.WriteLine("The " + this._name + " is eating.... "); // Console.WriteLine("There is " + number + " Cows....."); // Fly(); // } // } // public class Chicken : Animal // { // //protected string _name; // public Chicken(string name):base(name) // { // //this._name = name; // } // public override void Eat() // { // Console.WriteLine("The " + this._name + " is eating....."); // } // } // public class Demo // { // public static void Main(string[] args) // { // Cow cow = new Cow("cow"); // Animal chicken = new Chicken("chicken"); // ArrayList animal = new ArrayList(); // animal.Add(cow); // animal.Add(chicken); // ((Animal)animal[0]).Eat(); // ((Animal)animal[1]).Eat(); // chicken.Eat(); // } // } //} //#endregion #region abstract two namespace MyEx { public abstract class Animal { protected string _name; public Animal(string name) { this._name = name; } public int number = 2; public void Fly() { Console.WriteLine("I can't fly......"); } } public class Cow : Animal { //protected string _name; public Cow(string name) : base(name) { //this._name = name; } public void Eat() { Console.WriteLine("The " + this._name + " is eating.... "); Console.WriteLine("There is " + number + " Cows....."); Fly(); } } public class Chicken : Animal { //protected string _name; public Chicken(string name) : base(name) { //this._name = name; } public void Eat() { Console.WriteLine("The " + this._name + " is eating....."); } } public class Demo { public static void Main(string[] args) { Cow cow = new Cow("cow"); //Animal chicken = new Chicken("chicken"); //ArrayList animal = new ArrayList(); //animal.Add(cow); //animal.Add(chicken); //((Animal)animal[0]).Eat(); //((Animal)animal[1]).Eat(); cow.Eat(); } } } #endregion