最近一周在看C#编程语言,由于以前主要用C语言,在看到new和override两种方法对基类方法不同影响时有点迷糊。花了点时间查了下资料又自己实验了一下,在此小结一下,也算是便于自己记忆吧。
首先,继承不是子类附着到基类上,而是子类先复制基类的成员,再添加上自己的东西形成一个新的整体。
比如按如下定义的两个类:
他们之间的继承关系可以用下图来表示:
class son首先复制parent的两个成员:变量i和方法test(),然后再附加上自己的成员。这时候注意:new关键字定义的test()方法并没有覆盖掉从parent继承过来的方法,而是自己在旁边又新开了一个方法。那么new是怎么来隐藏继承得到的test()方法的呢?
当我们实例化一个对象,son aOfSon = new son(); 这时候aOfSon的类型是son类型,那么s