今天写了段代码,实现的是经典的长方形和正方形问题。这是长方形的代码

My god!!属性可以变成方法!!public class Rectangle
}

然后我做一个正方形类,继承长方形类(这种做法显然是不符合里氏替换原则的),并在代码中强制设置长和宽相等,代码如下:
My god!!属性可以变成方法!!public class Square :Rectangle
}

这样代码是没什么问题的,但是我们把代码稍做改动问题就会出现,我们把属性写成方法的形式
My god!!属性可以变成方法!!public class Square :Rectangle
}

这是Microsoft Visual Studio .NET 2003的类视图,可以清楚地看到属性继承后用方法进行了替代。
My god!!属性可以变成方法!!
天哪,这样的代码居然可以编译通过,谁能解释这一现象。

更让我吃惊的是以下的代码也可以编译通过
My god!!属性可以变成方法!!public class A 
 

用字段来覆盖方法也行???!!!

相关文章: