假设白马是马
即,白马 is a 马
亦即,
public class 马
public class 白马 : 马由假设,声明一个变量
白马 a=new 白马();
(a as 马).颜色=黑;a是白马,a的颜色怎么能是黑的呢?矛盾出现了,所以假设不成立,白马不是马
那它们是什么关系呢?应该是这样public interface 马
public class 白马 : 马
现在“马”是不能有属性的,(a as 马).颜色也就无从谈起了
即,并非白马 is a 马,而是“白马 performs as a 马”当然,它们的关系还可以有其它方案,比如[马]
public class 白马:object或者[白]
[马]
public class 白马:object或者
public class 马
public class 白马:object
{
private 马 m_马=new 马(白);
}
即,白马 is a 马
亦即,
public class 马
public class 白马 : 马由假设,声明一个变量
白马 a=new 白马();
(a as 马).颜色=黑;a是白马,a的颜色怎么能是黑的呢?矛盾出现了,所以假设不成立,白马不是马
那它们是什么关系呢?应该是这样public interface 马
public class 白马 : 马
现在“马”是不能有属性的,(a as 马).颜色也就无从谈起了
即,并非白马 is a 马,而是“白马 performs as a 马”当然,它们的关系还可以有其它方案,比如[马]
public class 白马:object或者[白]
[马]
public class 白马:object或者
public class 马
public class 白马:object
{
private 马 m_马=new 马(白);
}
中国DotNet程序员俱乐部 -- www.willsft.com -- 中国最专业的DotNet技术社区!DotNet技术支持群: 3354034
34857327 、24694039、19055417、2684939、1621937、37718551、25570926
===================================================================
意味着白马的颜色属性==白
而这个属性应该是只读的!就像人生下来头发是黑的就是黑的,外面染成黄的,其实还是黑的!白马没有理由将颜色设置成白以外的颜色!除非有另外一个属性,类似于:“外观色”。
高手有空帮忙看下这个困难问题帖子!!谢谢!
http://community.csdn.net/Expert/topic/5684/5684900.xml?temp=.9734461
(a as 马).颜色=黑;a是白马,a的颜色怎么能是黑的呢?矛盾出现了,所以假设不成立,白马不是马
那它们是什么关系呢?应该是这样
-----------------------------今天再想一下,其实这个没错,而且假设也成立,脱离现实的话.白马生出来是白色,但如果硬是将其改成黑色,也没错.因为白马未必一定是白色.后天的强硬更改,将白马设成黑色也行,就像如果你是小明,如果天下人都硬是将你的名字改成小红,那叫小红也没错,但小明其实与小红等于一个人,即小明=小红.上述也是,强制改变后,白马=黑马.