c# - 忽略覆盖函数并使用新函数
问题描述
刚刚在网上通过测验准备面试C#
。我读了这个问题:
using System;
// ...
public class Program
{
static void Main(string[] args)
{
Derived d = new Derived();
int i = 10;
d.Func(i);
}
}
public class Base
{
public virtual void Func(int x)
{
Console.WriteLine("Base.Func(int)");
}
}
public class Derived : Base
{
public override void Func(int x)
{
Console.WriteLine("Derived.Func(int)");
}
public void Func(object o)
{
Console.WriteLine("Derived.Func(object)");
}
}
它说输出实际上应该是Derived.Fun(Object)
. 你能帮我理解它为什么会这样做吗?我以为它会Func
以整数作为参数调用命令。
解决方案
推荐阅读
- git - 如何撤消/恢复已添加到 .git/info/exclude 的文件的排除
- c - 如何在没有空格的情况下读取未知长度的矩阵?
- json - 如何在 laravel 中验证递归对象
- python - 如何在进程之间共享日期变量 - 多处理 python
- mule - 如何在 Mule Kernel 中创建小数据集成作业
- node.js - 续集 Postgres 事务问题
- java - 使用集群中的一个节点访问marklogic很慢
- flutter - 如何制作一个BuiltList
不在列表中 飘飘然 - .net-core - NLog 在哪个文件夹中维护日志文件
- java - Google App 引擎本地服务器无法启动