早教吧 育儿知识 作业答案 考试题库 百科 知识分享

c#中向下转换基础问题向下转型:父类对象转换为子类对象,这里要注意进行强制转换person类是student类的父类,现分别定义对象如下:personper=newstudent();studentstu;stu=(student)per;//向下

题目详情
c#中向下转换基础问题
向下转型:父类对象转换为子类对象,这里要注意进行强制转换
person类是student类的父类,现分别定义对象如下:
person per =new student();
student stu ;
stu =(student)per ;// 向下转型
问题:向下转换后,实例方法实现的是子类中的吧?
▼优质解答
答案和解析
1. 转型后要做判断,因为向下转换未必一定能成功
2.
向下转换后,实例方法实现的是子类中的吧?
==
还要看类的层次关系,就楼主的案例只有两层,调用的肯定是子类Student类的方法
但如果类的层次有三层,比如说
class A {}
class B:A {}
class C:B{}
A a = new C();
B b = (B)a;
b调用的就是B类的方法,但如果有被C类重写过的虚方法,则调用子类C类的方法