今天面试遇到一神题,求解释
今天面试遇到一神题,求解释
public class A
{
public virtual void Print()
{
Console.WriteLine("A");
}
}
public class B : A
{
public override void Print()
{
Console.WriteLine("B");
}
}
public class C : B
{
public void Print()
{
Console.WriteLine("C");
}
}
public class D : C
{
public new virtual void Print()
{
Console.WriteLine("D");
}
}
不求甚解,谁能解释下,下面4个方法分别的输出结果,为什么会这么输出
A a = new D();
a.Print();//B
B b = new B();
A a1 = (A)b;
a1.Print();//B
C c = new C();
A a2 = (A)c;
a2.Print();//B
D d = new D();
C c1 = (C)d;
c1.Print();//C
public class A
{
public virtual void Print()
{
Console.WriteLine("A");
}
}
public class B : A
{
public override void Print()
{
Console.WriteLine("B");
}
}
public class C : B
{
public void Print()
{
Console.WriteLine("C");
}
}
public class D : C
{
public new virtual void Print()
{
Console.WriteLine("D");
}
}
不求甚解,谁能解释下,下面4个方法分别的输出结果,为什么会这么输出
A a = new D();
a.Print();//B
B b = new B();
A a1 = (A)b;
a1.Print();//B
C c = new C();
A a2 = (A)c;
a2.Print();//B
D d = new D();
C c1 = (C)d;
c1.Print();//C
...全文
相关推荐
谷歌高畅、BAT霜神leetcode刷题笔记.zip
【标题】:“谷歌高畅、BAT霜神leetcode刷题笔记.zip”是一份压缩包文件,包含两位业内专家——“谷歌高畅”和“BAT霜神”的LeetCode刷题笔记。
面试官本拿求素数搞我,但被我优雅的“回击“了(素数筛)
前言 现在的面试官,是无数开发者的梦魇,能够吊打面试官的属实不多,因为大部分面试官真的有那么那几下子。但在面试中,我们这些小生存者不能全盘否定只能单点突破—从某个问题上让面试官眼前一亮。这不,今天就来分享来了。 这年头,算法岗内卷不说,开发岗也有点内卷,对开发者要求越来越高了,而面试官也是处心积虑的 “刁难” 面试者,凡是都喜欢由浅入深,凡是都喜欢问个:你知道为什么?你知道原理吗?之类。并且,以前只是大厂面试官喜欢问算法,大厂员工底子好,很多甚至有ACM经验或者系统刷题经验,这很容易理解,但现在一些小公司面
BAT霜神Leetcode刷题笔记
《BAT霜神LeetCode刷题笔记》是一份针对求职者,尤其是希望进入BAT(百度、阿里巴巴、腾讯)等知名互联网公司的程序员所准备的珍贵资源。
Spark面试2000题(1~6期 外加60题)
Spark面试2000题(1~6期 外加60题)Spark面试2000题(1~6期 外加60题)
码神之路Java面试宝典2022最新版
这份宝典分为三个部分,分别是《码神之路Java面试宝典(第一版上)》,《码神之路Java面试宝典(第一版中)》和《码神之路Java面试宝典(第一版下)》。在Java面试中,基础知识是必不可少的。


