| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 814 人关注过本帖
标题:[求助]关于基础类和派生类的疑问
只看楼主 加入收藏
rainlily0315
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2005-11-19
收藏
 问题点数:0 回复次数:9 
[求助]关于基础类和派生类的疑问

using System;
class Vehicle
{
public void Drive()
{
Console.WriteLine("I am driving!");
}
}
class Car : Vehicle
{
//
}

Vehicle aVehicle = new Vehicle(); ///
Car aCar = new Car(); /// (a)
aVehicle = aCar; ///

Vehicle aVehicle = new Car(); ///(b)

一、(a)和(b)的效果是不是相同?
二、那么对象的真实数据类型是什么呢?
Vehicle aVehicle = new Vehicle();//真实数据类型是Vehicle
Car aCar = new Car(); //真实数据类型是Car
Vehicle aVehicle = new Car(); //真实数据类型是不是Car?
在基础类和派生类有这样的原则:(1)只要是基础类出现的地方,都可以用该基础类的派生类代替。
(2)任何基础类和他的派生类都有相同的数据类型。
根据原则(2)对象的真实数据类型也应是相同的!但是这好像有矛盾了!
请高手们和版主们赐教! 谢谢!

搜索更多相关主题的帖子: Vehicle Car 派生类 疑问 new 
2005-11-28 12:30
rainlily0315
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2005-11-19
收藏
得分:0 
帮帮忙吧 ,高手们!!!!

闯出自己的天空
2005-11-28 16:01
rainlily0315
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2005-11-19
收藏
得分:0 
郁闷

闯出自己的天空
2005-11-28 21:56
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 

你真强啊,这样的问题都被你想到了。
(b)处的aVehicle我认为是Vehicle型的(如果它能编译通过)。
估计没人这么编过程序。


本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2005-11-29 08:51
rainlily0315
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2005-11-19
收藏
得分:0 
怎么会没人这么编呢?
您看看我转的帖子 ,那时针对继承和多态,从设计模式上考虑的。
(b)处的aVehicle是aVehicle型的 ,他的对象car 是car 型的,所了用aVehicle调用方法和访问属性是不一样的,调用方法的范围是car,访问属性的范围是aVehicle。

闯出自己的天空
2005-11-29 13:49
limo
Rank: 1
等 级:新手上路
帖 子:358
专家分:0
注 册:2005-7-26
收藏
得分:0 
看过一点C++.net不过忘的差不多了

a,是car型
b, 是Vehicle型,应该归为派生类



此人无我相、无人相、无众生相、无寿者相,所以者何?离一切相,则名“诸佛”。
2005-11-30 17:16
rainlily0315
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2005-11-19
收藏
得分:0 

你用console.WriteLine(aVehicle.GetType().tostring);
看看 它是car


闯出自己的天空
2005-11-30 17:28
limo
Rank: 1
等 级:新手上路
帖 子:358
专家分:0
注 册:2005-7-26
收藏
得分:0 
以下是引用rainlily0315在2005-11-30 17:28:00的发言:

你用console.WriteLine(aVehicle.GetType().tostring);
看看 它是car

刚才我看反了 “:“是 “继承“

我是按 “空间“ 看的

“::“ 是空间,我记反了

虽然结果错了,思路还是对的


此人无我相、无人相、无众生相、无寿者相,所以者何?离一切相,则名“诸佛”。
2005-11-30 18:25
rainlily0315
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2005-11-19
收藏
得分:0 
你眼睛不近视阿,你应该戴眼镜了

闯出自己的天空
2005-11-30 23:54
limo
Rank: 1
等 级:新手上路
帖 子:358
专家分:0
注 册:2005-7-26
收藏
得分:0 
以下是引用rainlily0315在2005-11-30 23:54:00的发言:
你眼睛不近视阿,你应该戴眼镜了

这不在近视不近视的。

java用 extends继承

c#,C++用“:”,实际上我只看过两个晚上的C++,记混乱了,是应该的


此人无我相、无人相、无众生相、无寿者相,所以者何?离一切相,则名“诸佛”。
2005-12-01 16:55
快速回复:[求助]关于基础类和派生类的疑问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014313 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved