C#抽象类详解
抽象类的概念
使用abstract关键字修饰,类中至少有一个函数成员没有被完全实现。
抽象类的声明
public abstract class Animal
{
public double Height { get; set; }
public abstract double Weight { get; set; }
public void Eat()
{
Console.WriteLine("Animal is eatting");
}
public abstract void Run();
}
这个类有以下特点:
1.声明这个类的时候前面加上了abstract关键字。
2.我们为这个类创建了一个Height的属性,实现了一个Eat的方法,但是最后一个Run方法时没有实现的,并且在前面加上了abstract关键字,我们结合抽象类的概念:在类中至少有一个函数成员没有被完全实现。如果我们把最后一个方法实现了,那这就不是一个抽象类了。
3.抽象类中能够添加abstract关键字只有属性和方法,并且添加abstract关键字的属性和方法是不能使用private修饰。因为添加abstract关键字的属性和方法需要被子类重写,使用private关键字后子类无法访问。
抽象类的使用
public class Dog : Animal
{
public override double Weight { get; set; }
public override void Run()
{
Console.WriteLine("Dog is running");
}
}
public abstract class People : Animal
{
public abstract void Sleep();
}
public class Chinese : People
{
public override double Weight { get; set; }
public override void Run()
{
Console.WriteLine("Chinese is running");
}
public override void Sleep()
{
Console.WriteLine("Chinese is sleeping");
}
}
注意:
1.抽象类不能实例化
2.抽象类可以继承抽象类,没有任何具体实现的抽象类相当于接口
3.抽象类的设计应当遵循开放/关闭原则
4.抽象属性的重写主要是对get和set的重写

浙公网安备 33010602011771号