问题描述
在C#编程中,为什么给父类加了abstract并且该类中有一个抽象方法,当该父类有多个子类时.我用一个LIST<父类型>来ADD他的子类对象进去.并且各个子类都实现了父类的抽象方法,现在我要做的是用一个foreach循环取出集合里每个子类对象来调用他们各自的实现了的抽象方法.为什么不需要转换即可调用它们实现了的方法呢?编译器是好何区分的呢?还有一问就是在ADD进去的子类对象是否自动转换为父类类型的对象??////////////////////////请高人赐教/////////////////////////
解决方案
解决方案二:
大哥,难道你能调用抽象方法?实例类型是子类的当然调用子类的方法
解决方案三:
因为abstract方法也是virtual方法,他是运行时多态
解决方案四:
首先List是泛型类列表,类型不用管。其次ADD就是实例化好的类型,具体能不能从子类转到父类就不知道了,但是父类的方法是可以用的。
时间: 2024-10-15 20:55:37