汽车类.轮子类,发动机类。。。delphi的一些问题

转载 2012年03月22日 21:44:57

delphi中能否让一个子类既继承父类又实现定义好的接口?怎么实现?

比如
{父类:汽车类}
Tcar = class(TObject)   
  private
    name : string;
    Fwheel: Twheel;
    Fbrake: Tbrake;
    Fengine: Tengine;
    Fcarbody: Tcarbody;

  public
    function CarPackage(s : string): string; virtual; //组装汽车

end;

{接口}
interface
type
  carMove = interface

  function SpeedDown():string;  //减速
  function ShutDown():string;   //停止
  function Start():string;      //启动
  function carspeedUp():string;
  function StartBrake:string;//启动刹车
  end;

{子类}
uses
  TcarClass;
type TAodiQ7 = class(TCar)

private

public
  function CarPackage(s : string): string; override;
end;


昵称: hhkun0120  时间: 2011-08-31 23:13:34
Delphi(Pascal) code

unit Unit3;

interface

uses SysUtils;

type
  carMove = interface
    function SpeedDown(): string; //减速
    function ShutDown(): string; //停止
    function Start(): string; //启动
    function carspeedUp(): string;
    function StartBrake: string; //启动刹车
  end;

  {父类:汽车类}
  Tcar = class(TObject)
  private
    name: string;
    Fwheel: Twheel;
    Fbrake: Tbrake;
    Fengine: Tengine;
    Fcarbody: Tcarbody;
  public
    function CarPackage(s: string): string; virtual; //组装汽车
  end;

  TAodiQ7 = class(TCar, carMove)
  private
  protected
    //  interface  carMove
    function SpeedDown(): string; //减速
    function ShutDown(): string; //停止
    function Start(): string; //启动
    function carspeedUp(): string;
    function StartBrake: string; //启动刹车
  public
    function CarPackage(s: string): string; override;
  end;

implementation

{ TAodiQ7 }

function TAodiQ7.CarPackage(s: string): string;
begin

end;

function TAodiQ7.carspeedUp: string;
begin

end;

function TAodiQ7.ShutDown: string;
begin

end;

function TAodiQ7.SpeedDown: string;
begin

end;

function TAodiQ7.Start: string;
begin

end;

function TAodiQ7.StartBrake: string;
begin

end;

{ Tcar }

function Tcar.CarPackage(s: string): string;
begin

end;

end.


昵称: jayqiang  时间: 2011-09-01 08:31:04
谢谢,我还想问下
Delphi(Pascal) code
//Sysutils是Pascal的一个库 uses Sysutils这个语句的意思就是调用这个库 uses Sysutils;

这个Sysutils 是什么样的一个库?
昵称: hhkun0120  时间: 2011-09-01 09:58:39
Sysutils 是系统工具库
昵称: sz_haitao  时间: 2011-09-01 10:07:33
Delphi(Pascal) code
[Pascal Error] TAodiA4cls.pas(21): E2003 Undeclared identifier: 'QueryInterface' [Pascal Error] TAodiA4cls.pas(21): E2003 Undeclared identifier: '_AddRef' [Pascal Error] TAodiA4cls.pas(21): E2003 Undeclared identifier: '_Release' [Pascal Error] TAodiA4cls.pas(29): E2008 Incompatible types [Pascal Error] TAodiA4cls.pas(35): E2003 Undeclared identifier: 'Result' [Pascal Fatal Error] CarProject.dpr(15): F2063 Could not compile used unit '..\src\TAodiA4cls.pas'

貌似接口写的不合规定
我到网上先查查
昵称: hhkun0120  时间: 2011-09-01 10:08:29
系统工具库里具体有什么常用的东西?
能否给几个例子。
引用 3 楼 sz_haitao 的回复:
Sysutils 是系统工具库
昵称: hhkun0120  时间: 2011-09-01 10:10:28
直接继承就可以了, class的只能够继承一个, 但接口是可以无限多个的

Child = class(Parent, Interface....)
昵称: dfasri  时间: 2011-09-01 10:23:56
使用Sysutils 是不是因为interface是系统工具库中的类?
昵称: hhkun0120  时间: 2011-09-01 10:26:42
[Pascal Error] TAodiA4cls.pas(21): E2003 Undeclared identifier: 'QueryInterface'
[Pascal Error] TAodiA4cls.pas(21): E2003 Undeclared identifier: '_AddRef'
[Pascal Error] TAodiA4cls.pas(21): E2003 Undeclared identifier: '_Release'

继承接口,必须实现这3个成员
昵称: diecode  时间: 2011-09-01 11:16:46

对上面回答不满意?


Delphi汽车类作业之反思与改进

本来昨天晚上以为汽车类的作业已经做好了,虽然也觉得自己做得太简单了因为有太多的工作要做,就没太在意改进的事情。     昨天上了Delphi程序调试的课程,对调试程序有了新的认识。印象最为深刻的有以...
  • Huaerge
  • Huaerge
  • 2012年08月08日 20:18
  • 2134

Delphi重要语法和OO特性——汽车类作业

•       编写汽车类,要求有汽车、方向盘、车身、发动机、刹车等几个类。 •       模拟一次从启动到结束的过程,并输出汽车的状态变化。 •       同时实现几类汽车:奥迪A4、奔驰C...
  • Huaerge
  • Huaerge
  • 2012年08月07日 00:01
  • 2573

汽车类继承的问题

类继承的问题 我举个例子,定义一个“车”类(非结口),汽车,货车 都是“车”类的子类。 我现在有20辆车,其中10改造成汽车,10改造成货车。这样的继承关系怎样实现?? 车=CLASS ...

抽象类(汽车问题)

1)编写一个Car类,具有: 属性:品牌(mark)——String类型 功能:驾驶(void drive( )) 2)定义Car类的子类SubCar,具有: ...

Android 疯狂造轮子 常用工具类 直接拿来用!

文章转自http://blog.csdn.net/smartbetter/article/details/52709446 本篇用于分享Android开发辅助工具类,用于快速开发,以便减少做重复的...

Java 取集合的差集,list集合或者map集合,都可以取差集。使用guava工具类来做。而不是重复的造轮子。

在使用集合的时候,我们有时候需要取两个集合的差集,这两个集合一般是List类型的集合。 一般情况下,要是我们自己去造轮子的话 ,那也简单。 只是。因人而异,造出来的轮子的质量也是参差不齐。 既如此,何...

造了一个轮子:注册表键编辑封装->registry类

使用蛮方便的注册表操作封装
  • hh_xj
  • hh_xj
  • 2011年01月05日 16:07
  • 607

造了个轮子——java日期工具类

懒得去依赖于apache或guava或spring或hibernate的日期类了。虽然是造轮子,但是自己好用才是王道。符合高内聚低耦合的日期转换类,值得代代相传...

齿轮位置传感器在汽车发动机的应用

汽车发动机动力总成结构发展至今已经远不止简单的机械运动这么简单,它在慢慢向电气化方向演变。然而发动机结构的复杂化、混合化、自动化以及启停系统的面世(ESS)给手动变速箱的技术提出了更高的要求。第一代启...

Cocos2d-x Sprite 执行 CCFade~ 这类透明度变化动作的一些问题

在引擎中提供了几个有关透明度变化的动作:CCFadeIn,CCFadeOut,CCFadeTo CCFadeIn:the opacity from 0 to 255 CCFadeOut:the opa...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:汽车类.轮子类,发动机类。。。delphi的一些问题
举报原因:
原因补充:

(最多只允许输入30个字)