关于c#代码问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 05:23:34
using System;
public class Weapon
{

public double Weight;
public double Hit;
public double Price;
public double DenyHit;
public Weapon (double Weight,double Hit,double Price,double DenyHit)
{
this .Weight =Weight ;
this .Hit =Hit ;
this .Price =Price ;
this .DenyHit =DenyHit ;
}
}
public class Tank:Weapon
{
public double oil;
public double drive;
public int healthy;
public int Behit(double Hit)
{
return healthy -=(int )(Hit /DenyHit) ;
}
public Tank(double Weight,double Hit,double Price,double DenyHit,double oil,double drive,int healthy)
{
this.oil = oil;
this.drive = drive;
this.healthy = healthy;
}
public void ShowState()
{
Console.WriteLine("坦克的重量是{0},火力是{1},坦克价格是{2},抗击力是{

有两个地方错了
一、Tank的构造函数中,应该先调用父类的构造函数。具体做法如下
public Tank(double Weight, double Hit, double Price, double DenyHit, double oil, double drive, int healthy):base(Weight ,Hit,Price ,DenyHit ) {
this.oil = oil;
this.drive = drive;
this.healthy = healthy;
}
就是用base()来调用父类构造函数
二、在Main()函数中,新建Tank类对象时,应该注意到Tank类的构造函数有7个参数,而不是5个,所有改成
Tank t = new Tank(2000, 800, 500000, 600, 100, 10, 10);
就可以了!!

我已经给你改好了,当初始化子类的时候会系统会调用默认的父类构造函数,所以要我们手动来调用父类构造函数