再问多一个父类和子类

happy61 2009-03-04 04:27:07
之前各位告诉我

父类=子类

是成立的

那么

子类=父类是否成立呢?


...全文
88 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
tan123456789 2009-03-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 enihs 的回复:]
class A
{
}

class AA:A
{
}

A a = new AA();//成立
AA aa = new A();//不成立
[/Quote]

這樣看就直接。。
happy61 2009-03-05
  • 打赏
  • 举报
回复


车 a = new(卡车)

这样A有卡车的属性吗?
is_who 2009-03-05
  • 打赏
  • 举报
回复
不在立
比如 车 和 卡车的关系.
车 a = new(卡车)
说的过去.

卡车 a = new(车)
就有点说不过去了.

子类在内存中占的空间比父类多,说以子类赋给父类时只需要把属于父类那部分空间赋给子类就可以了,
那父类赋给子类时,就实现不了了
yijianxiangde100 2009-03-05
  • 打赏
  • 举报
回复
这个问题很是厉害,我的发言是: 抽象的能变成具体的,但是具体不能变成抽象的。
wanghui0380 2009-03-05
  • 打赏
  • 举报
回复
在说白点 就是父类中的 type 方法表里根本就不存在 子类的type

子类=父类 子类根本没办法从父类获取的相关的 Type 方法表

父类=子类 可以!因为子类里面包含了父类的Type 方法表,所以他可以找到 相关的 type方法表

jiezi316 2009-03-05
  • 打赏
  • 举报
回复
貌似有点 种族XX 的味道?
wanghui0380 2009-03-05
  • 打赏
  • 举报
回复
人类中黑人--------------黑人中的人类??太别扭了
wanghui0380 2009-03-05
  • 打赏
  • 举报
回复
和任何语言的转换一样

只有从外延大的到外延小的地方转换


你可以说中国的北京,而不能说北京的中国
sjt000 2009-03-05
  • 打赏
  • 举报
回复
mark
denshanzhe 2009-03-05
  • 打赏
  • 举报
回复
什么叫:

父类=子类

子类=父类

????


建议看看C++基础知识书。
yinjianjing 2009-03-05
  • 打赏
  • 举报
回复
关注中。。。
caorenlong 2009-03-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 agentianle 的回复:]
子类=父类是否成立呢? 显然不成立, 人 --> 黑人,

黑人必然是人

但人未必都是黑人
[/Quote]
人应该是父类吧? 黑人是子类!
感觉这例子不太恰当呢?
happy61 2009-03-05
  • 打赏
  • 举报
回复


public class MyObject1
{
}
public class MyObject : MyObject1
{
public string a = 1;
public void kk(){};

}

class Program
{
static void Main(string[] args)
{
MyObject1 obj = new MyObject();

//Call Object instance methods
obj.ToString();
//Call Object static methods
IObjectable.Equals(null, null);
}
}







那么在Main函数中,以下的是否有问题?
1、
MyObject1 obj = new MyObject();
2、
MyObject obj = new Myobject();
MyObject1 obj1 = obj;

-----------------------------------

第2个是父类=子类。。

那么 子类比父类多了属性喔。。

那最后Obj1=obj后
obj1不就什么都没有了?

cppfaq 2009-03-04
  • 打赏
  • 举报
回复
黑人Jack是人。你也是人。当需要一个人的时候,可以让你上,也可以让黑人Jack上。但是当需要一个黑人的时候,你就不能上了。
happy61 2009-03-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 agentianle 的回复:]
子类=父类是否成立呢? 显然不成立, 人 --> 黑人,

黑人必然是人

但人未必都是黑人

但是,如果某人确实是个黑人,可以强制转换,例如:

人 某人 =new 黑人();

黑人 一个黑人 = (黑人)某人; //成立
[/Quote]


那是不是。。。人是父类,黑人是子类。。。

那么黑人都有人的特征啊。。

人可不是都有黑人的特征吖?
gaoyongjun007 2009-03-04
  • 打赏
  • 举报
回复
根据里氏代换原则(LSP)子类=父类是不能成立的,父类=子类是针对抽象编程的一个合理体现
criedshy 2009-03-04
  • 打赏
  • 举报
回复
不成立
天乐 2009-03-04
  • 打赏
  • 举报
回复
子类=父类是否成立呢? 显然不成立, 人 --> 黑人,

黑人必然是人

但人未必都是黑人

但是,如果某人确实是个黑人,可以强制转换,例如:

人 某人 =new 黑人();

黑人 一个黑人 = (黑人)某人; //成立
enihs 2009-03-04
  • 打赏
  • 举报
回复
class A
{
}

class AA:A
{
}

A a = new AA();//成立
AA aa = new A();//不成立

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧