抽象类

来源:互联网 发布:聚宝盆返奖统计软件 编辑:程序博客网 时间:2024/05/22 20:29

1.不能被实例化,只能被继承
2.可以有抽象方法
(非抽象类不能有抽象方法)
3.子类继承抽象类,必须重写抽象类的抽象方法
4.抽象类其他方面和类一样,可以有正常的字段,属性,方法等

abstract class A{    public abstract void move();    public void otherMethod();}class B:A{    public override void move();}

class Program
{
static void Main(string[] args)
{
B b1 = new B();
b1.move();
b1.move2();
b1.move3();
Console.WriteLine();

        D d1 = new D();        d1.move3();        d1.move4();        Console.ReadKey();    }}abstract class A  //抽象类不能被实例化{    public abstract void move();    public void move2(){         //抽象方法其他方面与正常类相同        Console.WriteLine("父类,move2");    }    public abstract void move3();//抽象方法没有方法体}class B : A{    public override void move()    {        Console.WriteLine("子类B,move");    }    public override void move3()//抽象类抽象方法必须在子类里实现    {        Console.WriteLine("子类C,move");    }}abstract class C : A{    public override void move3(){        Console.WriteLine("子类C,move3");    }    public abstract void move4();}class D:C{    public override void move()    {    }    public override void move3()//虽然此处重写了父类的方法,但是没有实现父类的方法    {    }    public override void move4()    {        Console.WriteLine("子类D,move4");    }}

class Program
{
static void Main(string[] args)
{
Car C1 = new Car(4,1.3f,5);
C1.Speak();

        Console.ReadKey();    }}abstract class Vehicle//定义汽车类{    public int wheels;//公有成员:轮子个数    protected float weight;//保护成员:重量    public Vehicle(int w, float g) {        wheels = w;        weight = g;    }    public virtual void Speak() {        Console.WriteLine("the speak");    }}class Car : Vehicle//定义轿车类{    int passengers;//私有成员,乘客数    public Car(int w, float g, int p)       :base(w,g)    {        wheels = w;        weight = g;        passengers = p;    }    public override void Speak()    {        Console.WriteLine("The car Speak");        Console.WriteLine("车轮数:"+wheels);        Console.WriteLine("车的重量:"+weight);        Console.WriteLine("承载人数:"+passengers);    }}class Truck : Vehicle//定义卡车类{    int passengers;//私有成员:乘客数    float load;//私有成员:载重量    public Truck(int w,float g,int p,float l):base(w,g)    {        wheels = w;        weight = g;        passengers = p;        load = l;    }    public override void  Speak()    {        Console.WriteLine("The truck");    }

}

0 0