C#继承和重写实例

这篇博客探讨了C#中的继承和重写概念,通过一个腾讯面试题为例,展示了如何在子类中重写基类的方法。文章通过创建BaseClass、Class1和Class2的示例代码,说明了在调用MethodA()和MethodB()时,如何根据继承和重写原则执行相应的方法。
摘要由CSDN通过智能技术生成

最近看见腾讯面试.net有道关于C#继承和重写的题目,原题如下:

 abstract class BaseClass
{
    public virtual void MethodA()
    {
    }
    public virtual void MethodB()
    {
    }
}
class Class1: BaseClass
{
    public void MethodA(string arg)
    {
    }
    public override void MethodB()
    {
    }
}
class Class2: Class1
{
    new public void MethodB()
    {
    }
}
class MainClass
{
    public static void Main(string[] args)
    {
        Class2 o = new Class2();
        Console.WriteLine(o.MethodA());
    }
}
请问,o.MethodA调用的是: (    )
A.BaseClass.MethodA                     B.Class2.MethodA
C.Class1.MethodA                           D.都不是

毫无疑问,答案选A.

我们不妨使用程序来证明:

首先创建BaseClass:

 abstract class BaseClass
    {
        public virtual void MethodA() {
            Console.WriteLine("BaseClass.MethodA");
        }
        public virtual vo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值