我自己做了。。但很多地方还是不行。。请大家帮忙修改一下啊谢谢了我只要一加上/*××××*/里面的代码就不能编译成功了。。谢谢了
现在附上题目,和我自己写的一个类和主文件:
题目--》
设计一个类THUMAN,含有变量name及属性AGE(采用直按方法设计)与属性SEX(采用set/get访问方法)设计,至少包含二个虚拟方法SPEAK,(带参数age的,在实例中将说-我AGE岁,;不带参数说-我是一个人)与一个抽象方法WORK,由THUMAN将产生两个子类,第一个TEACH,其WORK说-我批改作业,第二个STUDENT,其WORK说-我要做作业了。
unit Unitclass4333;interface
type
thuman=class
procedure work;
procedure speak;virtual;
/* procedure speak(Age:integer);virtual;*/----这里一加上就错
public
name:string;
//直接访问方法定义属性
private
fage:integer;
public
property age:integer read fage write fage;
//访问方法定义属性
private fsex:string;
public
procedure setsex(value:string);
function getsex:string;
property sex:string read getsex write setsex; end;
type
tstudent=class(thuman)
procedure work;
procedure speak;override;
end ;
implementation
uses dialogs;/** procedure thuman.speak(Age:integer); begin showmessage('Age'+age);
end;
**/--------------------------------------星号里面的一加和上面那段星号里的一加就错 procedure thuman.setsex(value:string);
begin
if fsex <>value then
fsex :=value;
end;
function thuman.getsex:string ;
begin
getsex:=self.fsex ;
end; procedure thuman.work;
begin
showmessage('我批改作业');
end;
procedure thuman.speak;
begin showmessage('thuman speak');
end;
procedure tstudent.work;
begin
showmessage('我要做作业了');
end;
procedure tstudent.speak;
begin
inherited speak;
showmessage('tdog speak');
end;end.
==================
上面是我写的类,下面是窗口界面unit Unit4333;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Edit1: TEdit;
Label1: TLabel;
Edit2: TEdit;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
uses Unitclass4333;
{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
human:thuman;
student:tstudent;
begin
human:=thuman.Create ;
human.work;
human.Destroy ;
human:=tstudent.Create ;
human.work;
student:=tstudent.Create ;
student.work ;end;procedure TForm1.Button2Click(Sender: TObject); var
human:thuman;
student:tstudent;
begin
human:=thuman.Create ;
human.speak;
human.Destroy ;
human:=tstudent.Create ;
human.speak ;
student:=tstudent.Create ;
student.speak ;end;procedure TForm1.Button3Click(Sender: TObject);
var
human:thuman;
begin
human:=thuman.Create;
human.age :=strtoint(Edit1.Text);
human.sex :=edit2.Text;showmessage('年龄:'+inttostr(human.age)+' 性别:'+human.sex );end;end.--
谢谢啦看了很久。。没办法就问了
现在附上题目,和我自己写的一个类和主文件:
题目--》
设计一个类THUMAN,含有变量name及属性AGE(采用直按方法设计)与属性SEX(采用set/get访问方法)设计,至少包含二个虚拟方法SPEAK,(带参数age的,在实例中将说-我AGE岁,;不带参数说-我是一个人)与一个抽象方法WORK,由THUMAN将产生两个子类,第一个TEACH,其WORK说-我批改作业,第二个STUDENT,其WORK说-我要做作业了。
unit Unitclass4333;interface
type
thuman=class
procedure work;
procedure speak;virtual;
/* procedure speak(Age:integer);virtual;*/----这里一加上就错
public
name:string;
//直接访问方法定义属性
private
fage:integer;
public
property age:integer read fage write fage;
//访问方法定义属性
private fsex:string;
public
procedure setsex(value:string);
function getsex:string;
property sex:string read getsex write setsex; end;
type
tstudent=class(thuman)
procedure work;
procedure speak;override;
end ;
implementation
uses dialogs;/** procedure thuman.speak(Age:integer); begin showmessage('Age'+age);
end;
**/--------------------------------------星号里面的一加和上面那段星号里的一加就错 procedure thuman.setsex(value:string);
begin
if fsex <>value then
fsex :=value;
end;
function thuman.getsex:string ;
begin
getsex:=self.fsex ;
end; procedure thuman.work;
begin
showmessage('我批改作业');
end;
procedure thuman.speak;
begin showmessage('thuman speak');
end;
procedure tstudent.work;
begin
showmessage('我要做作业了');
end;
procedure tstudent.speak;
begin
inherited speak;
showmessage('tdog speak');
end;end.
==================
上面是我写的类,下面是窗口界面unit Unit4333;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Edit1: TEdit;
Label1: TLabel;
Edit2: TEdit;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
uses Unitclass4333;
{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
human:thuman;
student:tstudent;
begin
human:=thuman.Create ;
human.work;
human.Destroy ;
human:=tstudent.Create ;
human.work;
student:=tstudent.Create ;
student.work ;end;procedure TForm1.Button2Click(Sender: TObject); var
human:thuman;
student:tstudent;
begin
human:=thuman.Create ;
human.speak;
human.Destroy ;
human:=tstudent.Create ;
human.speak ;
student:=tstudent.Create ;
student.speak ;end;procedure TForm1.Button3Click(Sender: TObject);
var
human:thuman;
begin
human:=thuman.Create;
human.age :=strtoint(Edit1.Text);
human.sex :=edit2.Text;showmessage('年龄:'+inttostr(human.age)+' 性别:'+human.sex );end;end.--
谢谢啦看了很久。。没办法就问了
procedure speak(Age:integer);overload;virtual;