|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
.NET专区
→
『 C# 论坛 』
→ 关于基类和派生类对象的问题
我的收件箱(0)
共有
512
人关注过本帖
标题:
关于基类和派生类对象的问题
只看楼主
加入收藏
西安郑鑫
来 自:陕西
等 级:
黑侠
帖 子:163
专家分:624
注 册:2013-9-26
结帖率:
61.9%
楼主
收藏
已结贴
√
问题点数:12 回复次数:3
关于基类和派生类对象的问题
今天突然看到这个有点懵((Employee)m1).Name = "Mary";然后发现这是把派生类对象转换为基类对象,以前还没见过基类和派生类对象之间转换,请问基类对象可以转换为派生类对象吗?如果是大神就请讲解全面些,谢谢~~~
Hello World!------鑫花璐放
2014-02-10 18:11
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
2
楼
收藏
得分:4
這不叫轉換,是把對象視爲什麽類的問題。C的“强制轉換”稱呼誤導了多少人——其實C/C++本身這個操作都不是什麽轉換。
授人以渔,不授人以鱼。
2014-02-10 20:10
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
3
楼
收藏
得分:4
你舉例的這句代碼,其實是很無聊的,可以說毫無意義:
1.如果基類本身沒有Name字段或屬性,那麽你把子類對象m1强制視爲基類對象,就會出現基類沒有相關字段或屬性的錯誤;
2.如果子類已繼承有Name,那麽就不需要這樣轉換看法;
3.如果基類有Name字段或屬性,但子類沒有繼承,這樣這個代碼才有絲毫意義,但這又違反了類原則,屬於侵入它類内部讀寫數據的問題,因爲該子類既然沒有繼承這個東西,必定有其考慮,你這樣做是無視原先的設計,并假設自己很瞭解基類的内部構造,强行寫入本對象沒有分配空間的數據,過後這個m1對象將仍然找不到這個值。我沒測試過這種寫法到底有什麽現象,但絕對不會寫出這樣的代碼,所以不需要考究它的後果,不會深入探究。
授人以渔,不授人以鱼。
2014-02-10 20:22
举报帖子
使用道具
赠送鲜花
wangnannan
等 级:
贵宾
威 望:
87
帖 子:2546
专家分:9359
注 册:2007-11-3
第
4
楼
收藏
得分:4
这东西我告诉你实际项目中很少有这么写 也就是书里的大师爱这么玩花活
出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2014-02-11 15:28
举报帖子
使用道具
赠送鲜花
4
1/1页
1
快速回复:
关于基类和派生类对象的问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016789 second(s), 9 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved