interface Vehicle
{
double Speed
{
get;
set;
}
double Acceleration(double i);
double Brake();
}
class Car : Vehicle
{
double speed = 0;
public double Speed
{
get
{
return speed;
}
set
{
speed = value;
}
}
public double Brake()
{
Speed = 0;
Console.WriteLine("当前速度为"+Speed+"自行车已下车");
}
public double Acceleration(double i)
{
Speed = i * Speed;
Console.WriteLine("当前速度为:" + Speed);
}
}
class Bike : Vehicle
{
double speed = 0;
public double Speed
{
get
{
return speed;
}
set
{
speed = value;
}
}
public double Acceleration(double i)
{
Speed = 2 * Speed;
Console.WriteLine("当前速度为:" + Speed);
}
public double Brake()
{
Speed = 0;
Console.WriteLine(Speed);
}
}
class Program
{
static void Main(string[] args)
{
Car car = new Car();
Vehicle v1 = car;
v1.Speed = 10;
v1.Acceleration(1.2);
v1.Brake();
Bike bike = new Bike();
Vehicle v2 = bike;
v2.Speed = 10;
v2.Acceleration(1.2);
v2.Brake();
Console.ReadLine();
interface Vehicle
{
double Speed
{
get;
set;
}
double Acceleration(double i);
double Brake();
}
class Car : Vehicle
{
double speed = 0;
public double Speed
{
get
{
return speed;
}
set
{
speed = value;
}
}
public double Brake()
{
Speed = 0;
Console.WriteLine("当前速度为" + Speed + "自行车已下车"); // 这里话不通顺,你自行修改吧
return Speed; // 返回了经处理后的速度
}
public double Acceleration(double i)
{
Speed = i * Speed;
Console.WriteLine("当前速度为:" + Speed);
return Speed; // 返回了经处理后的速度
}
}
class Bike : Vehicle
{
double speed = 0;
public double Speed
{
get
{
return speed;
}
set
{
speed = value;
}
}
public double Acceleration(double i)
{
Speed = 2 * Speed; // ?? 这个方法中,你传入了一个参数 i ,但在方法体中,你没有用到。我怀疑这个语句是不是应该为 Speed = 2*i * Speed;
Console.WriteLine("当前速度为:" + Speed);
return Speed; // 返回了经处理后的速度
}
public double Brake()
{
Speed = 0;
Console.WriteLine(Speed);
return Speed; // 返回了经处理后的速度
}
}
class Program
{
static void Main(string[] args)
{
Car car = new Car();
Vehicle v1 = car;
v1.Speed = 10;
v1.Acceleration(1.2);
v1.Brake();
Bike bike = new Bike();
Vehicle v2 = bike;
v2.Speed = 10;
v2.Acceleration(1.2);
v2.Brake();
Console.ReadLine();
}
}
复制这段代码的时候,注意我那句注释行, 就是问你参数 i 为什么没有用到的那行,如果因为这行没有运行通过,就把这两竺汉字删掉。应该是刚接触c#吧,如果还有什么不是太懂的,欢迎讨论
public double Acceleration(double i)
{
Speed = 2 * Speed;
Console.WriteLine("当前速度为:" + Speed);
}
返回值是return Speed;
不是Console.WriteLine输出到控制台,那个不算返回值。
还有一个改法
v2.Acceleration(1.2);
你也许希望Acceleration内做完全部的事情,不需要返回。
那么函数定义为void Acceleration,而不是double Acceleration
最后,你的英文该好好学学,一般来说,方法应该用动词,而不是名词
所以这个方法可以叫GetAcceleration或者Accelerate
如果在这里,你想表达速度,可以用velocity(特指移动的速度)或者speed(各种事物发生的速率)
如果是想表达加速度才是acceleration