L
lovewjm
Unregistered / Unconfirmed
GUEST, unregistred user!
有的书上说:派生类完全继承基类的所有数据成员和方法;
数据成员的继承还好理解,在派生类的内存空间中,确实包含有其基类的完整的 数据成 员,我不太理解的是对方法的继承,基类的方法,派生类是怎样继承的呢?
假如A类是基类,B类是其派生类,假如A类有三个方法;
procedure a
procedure b virtual;
procedure c dynamic;
现在我们也不给B类再添加其它任何方法,也不覆盖父类的方法,假如有一个B类的对象bobj,执行bobj.a方法,那么这个方法a是B类拥用的,还是只是调用了父类的方法?我们知道每个类都有一个vmt表,这个表保存有本类和所有基类的虚方法,那所有基类的静态方法和动态方法在派生类有没有保存的有?如果派生类没有保存,而只是能够根据类的信息找到父类的方法地址去运行它,这应不应该叫继承?
有哪位高手能够阐述其中本质的关系,不胜感激!!,我觉得这很有必要弄清楚,多谢!!
数据成员的继承还好理解,在派生类的内存空间中,确实包含有其基类的完整的 数据成 员,我不太理解的是对方法的继承,基类的方法,派生类是怎样继承的呢?
假如A类是基类,B类是其派生类,假如A类有三个方法;
procedure a
procedure b virtual;
procedure c dynamic;
现在我们也不给B类再添加其它任何方法,也不覆盖父类的方法,假如有一个B类的对象bobj,执行bobj.a方法,那么这个方法a是B类拥用的,还是只是调用了父类的方法?我们知道每个类都有一个vmt表,这个表保存有本类和所有基类的虚方法,那所有基类的静态方法和动态方法在派生类有没有保存的有?如果派生类没有保存,而只是能够根据类的信息找到父类的方法地址去运行它,这应不应该叫继承?
有哪位高手能够阐述其中本质的关系,不胜感激!!,我觉得这很有必要弄清楚,多谢!!