在C#中,實(shí)現(xiàn)繼承主要通過使用冒號(hào)(:)和關(guān)鍵字extends
(在C# 2.0及更早版本中)或override
(在C# 3.0及更高版本中)來實(shí)現(xiàn)。以下是兩種實(shí)現(xiàn)繼承的方法:
extends
關(guān)鍵字(適用于C# 2.0及更早版本)在C# 2.0及更早版本中,只能繼承自類(class),不能繼承自接口(interface)。繼承的語(yǔ)法如下:
// 基類
public class BaseClass
{
public void Method()
{
Console.WriteLine("Base class method.");
}
}
// 派生類
public class DerivedClass : BaseClass
{
// 派生類可以訪問基類的成員
public void Method()
{
base.Method(); // 調(diào)用基類的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
關(guān)鍵字(適用于C# 3.0及更高版本)從C# 3.0開始,可以使用override
關(guān)鍵字來重寫基類的方法。此外,C# 3.0及更高版本還支持繼承接口。以下是使用override
關(guān)鍵字的示例:
// 基類
public class BaseClass
{
public virtual void Method()
{
Console.WriteLine("Base class method.");
}
}
// 接口
public interface IInterface
{
void Method();
}
// 派生類
public class DerivedClass : BaseClass, IInterface
{
// 使用override關(guān)鍵字重寫基類的方法
public override void Method()
{
base.Method(); // 調(diào)用基類的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.
}
}
在這個(gè)示例中,DerivedClass
繼承了BaseClass
并實(shí)現(xiàn)了IInterface
接口。通過使用override
關(guān)鍵字,DerivedClass
重寫了BaseClass
的Method
方法。