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

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
rainlily0315
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2005-11-19
收藏
得分:0 
怎么会没人这么编呢?
您看看我转的帖子 ,那时针对继承和多态,从设计模式上考虑的。
(b)处的aVehicle是aVehicle型的 ,他的对象car 是car 型的,所了用aVehicle调用方法和访问属性是不一样的,调用方法的范围是car,访问属性的范围是aVehicle。

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

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


闯出自己的天空
2005-11-30 17:28
rainlily0315
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2005-11-19
收藏
得分:0 
你眼睛不近视阿,你应该戴眼镜了

闯出自己的天空
2005-11-30 23:54
快速回复:[求助]关于基础类和派生类的疑问
数据加载中...
 
   



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

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