在C#中,可以使用关键字virtual
和override
来实现重定义子类中的子方法,而不重定义父类中的调用方法。具体步骤如下:
virtual
关键字,表示该方法可以被子类重定义。override
关键字,表示该方法是对父类方法的重定义。以下是一个示例代码:
// 父类
public class ParentClass
{
public virtual void Method()
{
Console.WriteLine("父类方法");
}
}
// 子类
public class ChildClass : ParentClass
{
public override void Method()
{
Console.WriteLine("子类方法");
}
}
// 使用示例
public static void Main(string[] args)
{
ParentClass obj1 = new ParentClass();
obj1.Method(); // 输出:父类方法
ParentClass obj2 = new ChildClass();
obj2.Method(); // 输出:子类方法
}
上述代码中,父类ParentClass
定义了一个名为Method
的方法,并使用virtual
关键字标记为可被子类重定义。子类ChildClass
通过使用override
关键字重定义了父类中的Method
方法。在Main
方法中,先创建一个父类对象obj1
,调用Method
方法会输出父类方法;再创建一个子类对象obj2
,同样调用Method
方法,会输出子类方法。
注意,virtual
和override
关键字只能用于非静态、非私有的方法。此外,父类中的虚方法也可以在子类中不重定义,直接使用父类中的方法。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云