关于虚方法的使用?急!(100分)

  • 主题发起人 主题发起人 pk
  • 开始时间 开始时间
P

pk

Unregistered / Unconfirmed
GUEST, unregistred user!
type A=class
procedure test;virtual;abstract;
end;
type B=class(A)
procedure test;override;
end;
procedure B.test;
begin
showmessage('ok!');
end;
我在其他类中这样调用:
var
a1:A;
b1:B;
B:=A;
B.test;
此程序在编译时没有出错,可在程序执行时出错了,错误发生在 B.test;这句。这是为什么?
请高手指点一二!我用的是delphi6编译器。
 
不能将父对象赋给子对象,只能将子对象赋给父对象。

你想想Delphi中的(Sender: TObject)就是这个道理,
你在使用时又可以把Sender转化为一个Tobject的子类。

父对象可以接受子对象是实现多态的基本方法.

 
没有用Create创建对象的实例,test可不是类方法!
 
对不起,我的调用写错了,应该是这样
var
a1:A;
b1:B;
a1:=b1;
a1.test;
不过我还要付给分的。谢谢各位![^]
 
Parent:=Child //ok
Child:=Parent //wrong
 
后退
顶部