抽象类和接口的区别
抽象方法没有实现。 而是由其派生的类提供其实现逻辑。 我们使用抽象类为派生类创建基础模板。
using System;
abstract class Test
{
public int _a;
public abstract void A();
}
class Example1 : Test
{
public override void A()
{
Console.WriteLine("Example1.A");
base._a++;
}
}
class Example2 : Test
{
public override void A()
{
Console.WriteLine("Example2.A");
base._a--;
}
}
class Program
{
static void Main()
{
// Reference Example1 through Test type.
Test test1 = new Example1();
test1.A();
// Reference Example2 through Test type.
Test test2 = new Example2();
test2.A();
}
}
派生类。
创建派生类(例如Example1或Example2)时,必须为抽象类中的所有抽象方法提供重写方法。
两个派生类中的A()方法都满足此要求。
覆写
Int字段。 抽象类可以在其中包含一个实例字段。 派生的类可以通过基本语法访问此字段。 这是抽象类和接口之间的主要区别。
整数
无法实例化抽象类。 抽象类的重要部分是您永远不能将其与派生类分开使用。 因此,在Main中,您不能使用新的Test()构造函数。
但是:将测试类型分配给派生类型(例如Example1或Example2)后,可以直接使用Test类型。
翻译自: https://bytes.com/topic/net/insights/958403-abstract-class
抽象类和接口的区别