在C#中,实现继承主要通过使用冒号(:)和关键字extends
(在C# 2.0及更早版本中)或override
(在C# 3.0及更高版本中)来实现。以下是两种实现继承的方法:
extends
关键字(适用于C# 2.0及更早版本)在C# 2.0及更早版本中,只能继承自类(class),不能继承自接口(interface)。继承的语法如下:
// 基类
public class BaseClass
{
public void Method()
{
Console.WriteLine("Base class method.");
}
}
// 派生类
public class DerivedClass : BaseClass
{
// 派生类可以访问基类的成员
public void Method()
{
base.Method(); // 调用基类的Method方法
Console.WriteLine("Derived class method.");
}
}
class Program
{
static void Main(string[] args)
{
DerivedClass obj = new DerivedClass();
obj.Method(); // 输出:Base class method. Derived class method.
}
}
override
关键字(适用于C# 3.0及更高版本)从C# 3.0开始,可以使用override
关键字来重写基类的方法。此外,C# 3.0及更高版本还支持继承接口。以下是使用override
关键字的示例:
// 基类
public class BaseClass
{
public virtual void Method()
{
Console.WriteLine("Base class method.");
}
}
// 接口
public interface IInterface
{
void Method();
}
// 派生类
public class DerivedClass : BaseClass, IInterface
{
// 使用override关键字重写基类的方法
public override void Method()
{
base.Method(); // 调用基类的Method方法
Console.WriteLine("Derived class method.");
}
}
class Program
{
static void Main(string[] args)
{
DerivedClass obj = new DerivedClass();
obj.Method(); // 输出:Base class method. Derived class method.
}
}
在这个示例中,DerivedClass
继承了BaseClass
并实现了IInterface
接口。通过使用override
关键字,DerivedClass
重写了BaseClass
的Method
方法。