经过测试,直接说结论
- 父类的引用可以调用父类中定义的属性和方法,对于在父类中没有的定义,在子类中单独进行了定义,父类的引用是不可以调用的
为什么出现这个情况呢?
这个实例是子类的,但是因为你声明的时候是用父类声明,所以你用正常的办法访问不到子类自己的成员,只能访问到从父类继承来的成员,你可以用那个实例的GetType()来获得它的类型。 - 对于父类和子类同时定义了某方法的
-子类重写了父类方法,父类的引用调用子类重写后的方法
-子类没有重写父类方法的,父类的引用调用父类自身的方法
用父类声明子类实例,这样做的目的是什么呢?
是因为父类里有的东西,子类里一定有,而子类里有的东西,父类里不一定有。所以声称是父类,但内容是子类是安全的;而声称是子类,但内容是父类的话,就可能会出现去访问不存在的成员之类的问题
另外,这样做是多态的使用,因为要加子类时不管添加多少子类,如果是以父类类型来声明的话,就没有影响,这样就不需要改一些代码了