------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------
C#支持class继承和接口继承,且支持class单继承,interface多继承,而由于interface中不能有任何实现代码,所以只是继承了函数签名。
结构不支持继承,但结构可以派生自一个或多个接口,Class可以派生自一个类和多个接口,接口可以派生自一个或者多个接口。
结构总是派生字System.ValueType,类总是派生字System.Object,一下是一个继承的例子:
在上面的例子中,Woman和Man都继承自Person,由于class总是继承自System.Object,所以Person省略了“:Object”
如若把一个方法用virtual关键字修饰,则该方法就是虚方法,可以在任何派生类中重写该方法,当然也可以有虚属性,例如:
由上例中可以看到,重写方法用override关键字,但不能将其用于字段和static函数
PS:1.重写之后会默认调用重写之后的方法。2.虚方法不能私有
如若在基类和派生类中都申明了相同签名的方法,切不是virtual和override,派生类中的方法会隐藏基类中的方法,如:(可以用new关键字,不然会有警告)
但若实例化子类给父类的时候,父类会找不到子类中的同名方法。这点须特别注意