社区
C#
帖子详情
我遇到一个有趣的问题!!大家进来看看!!尼玛????
hmw145
2012-08-06 12:24:59
如果看完问题你想这样回答:
1.首先是检查父有没有这样的方法然后才会检查子类有没有怎样的方法。那你就不用留言了!!
2.如果你竟然在回答我栈和堆是怎么样一回事的,那你也不用留言了!!因为栈和堆我懂!!
3.如果你刚写完代码的和心里有问题的哪你也不用留言了,因为你累了!!
以下我的问题:
...全文
3234
77
打赏
收藏
我遇到一个有趣的问题!!大家进来看看!!尼玛????
如果看完问题你想这样回答: 1.首先是检查父有没有这样的方法然后才会检查子类有没有怎样的方法。那你就不用留言了!! 2.如果你竟然在回答我栈和堆是怎么样一回事的,那你也不用留言了!!因为栈和堆我懂!! 3.如果你刚写完代码的和心里有问题的哪你也不用留言了,因为你累了!! 以下我的问题:
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
77 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
一羽清宁
2012-08-20
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
当然是调用person.go方法,这和是堆和栈没什么关系,和编译器有关系,编译器可以决定如何调用go方法,如果go是virtual/override方法,那么编译器会这样调用go,到p引用的对象也就是china对象中查询签名为go的方法然后调用它,
如果go不是virtual/override方法,那么编译器根本不会去查询p引用什么对象,直接就调用person.go方法,编译器知道如何调用……
[/Quote]赞同,自己编码验证了一下。
zhoucong1020
2012-08-18
打赏
举报
回复
如果没有父类方法没有标记为abstract或者virtual,子类如果有同名方法,那么你再编译的时候没有注意到编译器给出的警告吗?子类方法隐藏了父类方法,如果是刻意隐藏请使用关键字new
楼主这种用法根本不是重载,而是隐藏,重载只能对abstract或者virtual方法
idd3514276
2012-08-17
打赏
举报
回复
自己也有些浮躁了,谢谢各位前辈给出的宝贵意见
Journey31
2012-08-17
打赏
举报
回复
樓主真是太狂了啊!MVP都沒你屌
Catai算法晓极客
2012-08-16
打赏
举报
回复
入门问题
初学的人能谦虚一点吗
人傻且呆但不萌
2012-08-16
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
那么多感叹号, 还提醒不用留言什么的。
没有学过编译原理/操作系统原理/windows内核解析/深入.net.... 只懂些 .net 的皮毛的人, 最容易自大...
多年前,搞c++,有个必读的《深度探索C++对象模型》...读完这些,再过来学.net,就轻松了...
如果LZ读的是C++,也就不会那么浮躁,那么霸道了。(.net,微软降低了程序员的门槛: 半个月,就能让……
[/Quote]
您说的话让我感很惭愧,的确,我太容易满足了
ShoulderLai
2012-08-15
打赏
举报
回复
我不懂数据结构,不懂计算机组成,不懂堆栈等等基础。我只懂一点面向对象的基础。
Person p=new China();如此实例化,的确是p对象引用子类China对象;
那么在China类的构造函数里有隐含的无参构造函数
public China():base()
{
}
先有父类,才会有子类。所以在new China()这块堆内存里,其实也是有Person对象被实例化了。
也就是说同一块里既有China对象,也有Person对象。为了区分调用谁,所以也就有了new,virtual这些东西出来了。
xiaoxia6liu
2012-08-15
打赏
举报
回复
……继承和多态都没搞清楚……我都不知道你是怎么面向对象的……
liunanxuan613
2012-08-15
打赏
举报
回复
c#--应该是c shape,[Quote=引用 56 楼 的回复:]
C#不喜欢学java玩虚的就虚的。。。一般情况覆盖就覆盖。。。不覆盖就不覆盖需要用关键字指明的。。。
还有就是我用的VS2010就没有你说的问题啊!!难道楼主CPU坏了?上图C# code
class Program
{
static void Main(string[] args)
{
Person p = new stu(……
[/Quote]
liunanxuan613
2012-08-15
打赏
举报
回复
java和c++的继承机制应该是一样的,当子类继承父类时,如果有同名的方法(没有virtual关键字),子类是直接覆盖父类的同名方法的。c#的话,没有直接覆盖,而是直接隐藏了父类的同名方法(若同名方法没有virtual关键字)。所以c++是china.go。[Quote=引用 45 楼 的回复:]
不懂,我德C++ 一直是china.go的
[/Quote]
潇雨歇
2012-08-14
打赏
举报
回复
说说我的看法。这和编译什么什么的没关系吧,他就是个运行时问题。.net会在第一次编译的时候会编译成CLR的中间码,运行时经过JIT的即时编译为本地机器吗,并可根据具体的系统/CPU什么的进行编译优化。.net本身是依赖元数据,所以编译期间不一定能真正的确定对象的类型(如泛型),所以也不能确定具体是哪个方法。只有在运行时才能真正的确定类型,并确定调用方法的地址。举个例子,工厂模式中有一种是通过Reflection创建出指定的对象,并返回指定的接口,并寻址方法地址。
很久没看书了,不知道对不对。好像没回答楼主的问题,楼主的问题应该是说运行时.net如何寻址吧。现在手上没具体的手册,不能精确回答。
eRenChina
2012-08-14
打赏
举报
回复
你子类能用父类实例化?
好尴尬啊
2012-08-13
打赏
举报
回复
楼主出来啊 不是很牛气嘛
wluomu
2012-08-13
打赏
举报
回复
这个问题是多态里面的问题,还是自己多写一些代码实验一下,另外这个问题并不难,所以口气不要那么大。
凤凰涅檠
2012-08-13
打赏
举报
回复
走三步,退一步,MARK
bobo5421
2012-08-12
打赏
举报
回复
这不就是多态和动态绑定嘛
whatafuckinglongname
2012-08-11
打赏
举报
回复
[Quote=引用 44 楼 的回复:]
引用 42 楼 的回复:
java默认成员函数都是虚函数,而c#默认成员函数为非虚函数
C# new
C# code
public class ClassA
{
public void A(){}
}
public class DeriveclassA:ClassA
{
public new void A() {}
……
应该是分版本吧,以前需要显示的@ov……
[/Quote]
@override不影响,只是个annotation
指尖微凉丨
2012-08-11
打赏
举报
回复
这个是Visual Studio 2012 RC版
[Quote=引用 60 楼 的回复:]
这是个什么版本的VS?引用 18 楼 的回复:
[/Quote]
fxx3344
2012-08-11
打赏
举报
回复
[Quote=引用 53 楼 的回复:]
楼主似乎是关心内存以及调用方面的,其实没必要,每个编译器,每门语言都可以由自己的处理方式,大致上可能是这样的
[/Quote]
+1 ,我也认为lz可能是在问.net内部机制的问题,而非语言概念上的问题
以下这部分是对古老的面向对象编译器而已的,大家别忙着往.net套
面向对象编译器会把类的方法生成指令块,其所有实例都使用这段指令快处理方法调用;而对实例而言,保存的仅仅是数据而已。
lz的问题中没有override的使用,编译器发现p被声明成Person类型,于是实例p被简单映射到了Person对应的指令块(方法),执行的结果会以Person的方法定义为准。
使用override的方法处理就复杂多了,编译会从p的实际类型(而不是声明的类型)出发,按照继承树查找正确的指令块(方法),然后做映射。
.net的处理机制,我说不太清楚,但可以确认的一点是,指令块的映射不是在编译时做的,人家有clr;你编译出来的压根就不是二进制代码。
hcbzd
2012-08-11
打赏
举报
回复
这是个什么版本的VS?[Quote=引用 18 楼 的回复:]
[/Quote]
加载更多回复(42)
【专业词汇】阿
尼玛
原型
在卡尔·古斯塔夫·荣格(Carl Gustav Jung)的分析心理学理论中,是集体无意识中的核心原型,专指男性心灵深处潜藏的女性特质与意象。它源于人类生物进化与文化沉淀的先天遗传机制,而非单纯的个人后天经验,而是普遍存在于每位男性无意识中的“女性对立面”(feminine counterpart)。阿
尼玛
体现了男性被社会文化压抑的阴性面向,包括情感敏感、多愁善感、温柔细腻、直觉感知以及创造力。这些特质往往在男性意识层面(如理性主导、刚强外显)中被边缘化,从而沉入无意识领域,形成内在张力。
阿
尼玛
阿
尼玛
是每个男人心中都有的女人形象,是男人心灵中的女性成分。阿
尼玛
身上有男性认为女性所有的好的特点。每个男人的阿
尼玛
都不尽相同。男人会对心中阿
尼玛
的特点感到喜爱,在
遇到
象自己的阿
尼玛
的女性时,他会体验到极强烈的吸引力。...
阿
尼玛
,男性的女性向
比如说如果
一个
人的母亲对他有反面的影响,他的阿
尼玛
就经常表现出暴躁易怒的脾气,抑郁沮丧的情绪,优柔寡断,担惊受怕,神经过敏等阿
尼玛
的那些负面成分。无意识造成这种纠葛的秘密目的是迫使他发育,更多地融合进他的无意识个性,并把它带进他的现实生活,以促使其自身实体成熟,而不是陷入情感纠葛或幻念之中,而使得个性化进程陷入完全的停滞。只有以认真的态度对待,才能避开这类诱惑,从而才能发现这个作为内心存在的人物的实际意味,使阿
尼玛
还原成她最初的面目――“内在的女人”,通过她传达自性发出的信息。
机械密码的巅峰与破解:恩格
尼玛
机、炸弹破译机与书本密码全解析
恩格
尼玛
机与炸弹破译机的对抗,标志着密码学从纯数学向机电计算的跃迁,直接催生了现代计算机的雏形。而书本密码则揭示了安全性与可用性的永恒博弈——即使密钥空间无限大,人类因素仍是链条最弱一环。这三种技术的兴衰,为当今的量子加密与区块链提供了历史镜鉴。
SHUOJ几队周
尼玛
SHUOJ几队周
尼玛
描述超级无敌张小豪是A国的一名勇士,A国的勇士都要靠获得能量变得更强,在A国勇士获得能量只有唯一的一种途径就是膜拜宙斯神——周
尼玛
(桑!!!)。要膜拜周
尼玛
就要去到遥远的大日国那里有好多好多周
尼玛
(桑!!!)。但是周
尼玛
(桑!!!)是一种群居动物,一队周
尼玛
(桑!!!)中都有且只有
一个
领袖叫周
尼玛
你妹(桑!!!)超级无敌张小豪勇士必须拿着一炷香到周
尼玛
你妹(桑!!!)面前膜拜三下
C#
111,129
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章