栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java继承与C#继承

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java继承与C#继承

用于虚函数定义:

虚拟函数或虚拟方法是一种功能或方法,其行为可以在继承类中被具有相同签名的函数覆盖。这个概念是面向对象编程(OOP)的多态性部分中非常重要的一部分。

在C#中,您应该将方法声明为virtual以便被覆盖,如MSDN中所示:

  • C#语言规范 虚拟关键字
  • C#虚拟

由于该

M
方法不是虚拟的,因此
b.M()
即使
b
变量实际上是一个
D
实例,它也将执行。

在Java中,每个非静态方法默认情况下都是虚拟的,因此,当您覆盖某个方法(甚至没有

@Override
注释)时,的行为
b.M()
将是
d.M()
继承该
c.M()
方法行为的。

我如何像C#一样更改Java代码以打印出BCC?我的意思是,我怎么教Java调用它使用的完全引用的方法?

您根本无法在Java中做到这一点。该

M
在方法
C
类将重写
M
的方法
B
。将
final
修饰符添加到
B#M
只会使该修饰符
C
或其他
B
子项无法覆盖该
M()
方法。

如何更改C#代码以打印出CCC?我的意思是,我该如何教导C#调用重写方法?

将类中的

M
方法更改
B
virtual
并在类中重写它
C

class B : A{    public virtual void M()    {        Console.WriteLine("B");    }}class C : B{    public override void M() // I need to use public new void M() to avoid the warning    {        Console.WriteLine("C");    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/508987.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号