
c++ 父类指针转换为子类指针后调用子类的成员函数,为什么可以调用成功?
1个回答
展开全部
父类指针指向子类对象,然后调用子类对象所继承(或改写)的父类方法,这就是面向对象的核心--多态
其实也好理解,子类对象的类型与其父类的类型是共通的,他就是从父类继承来的,如果把子类比父类新增的成员变量或成员函数去掉,他就是一个父类的对象,当然可以调用自己的方法
不过,一般多态不是楼主这么用的,\一般是用来参数传递上,比如一个方法,要对他传的的参数是一个父类的类型的对象,然后这个方法中调用这个父类的成员函数,而实际传进去的实参通常为子类对象,方法调用的是子类改写后的方法
其实也好理解,子类对象的类型与其父类的类型是共通的,他就是从父类继承来的,如果把子类比父类新增的成员变量或成员函数去掉,他就是一个父类的对象,当然可以调用自己的方法
不过,一般多态不是楼主这么用的,\一般是用来参数传递上,比如一个方法,要对他传的的参数是一个父类的类型的对象,然后这个方法中调用这个父类的成员函数,而实际传进去的实参通常为子类对象,方法调用的是子类改写后的方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询