本文概述
- 抽象方法
- C#抽象类
- 抽象类
- 接口
抽象方法声明为抽象且没有主体的方法称为抽象方法。它只能在抽象类中声明。它的实现必须由派生类提供。例如:
public abstract void draw();
C#中的抽象方法在内部是虚拟方法,因此派生类可以覆盖它。你不能在抽象方法声明中使用静态和虚拟修饰符。
C#抽象类在C#中,抽象类是一个声明为抽象的类。它可以具有抽象和非抽象方法。无法实例化。它的实现必须由派生类提供。在此,派生类被迫提供所有抽象方法的实现。
我们来看一个C#中的抽象类示例,该示例具有一个抽象方法draw()。它的实现由派生的类Rectangle和Circle提供。两种类都有不同的实现。
using System;
public abstract class Shape
{
public abstract void draw();
}
public class Rectangle : Shape
{
public override void draw()
{
Console.WriteLine("drawing rectangle...");
}
}
public class Circle : Shape
{
public override void draw()
{
Console.WriteLine("drawing circle...");
}
}
public class TestAbstract
{
public static void Main()
{
Shape s;
s = new Rectangle();
s.draw();
s = new Circle();
s.draw();
}
}
【C#抽象abstract】输出:
drawing ractangle...
drawing circle...