这是我的代码。我想用a.Speed
方法提高速度值。这种方法属于第一类。第二类继承自第一类。
增加方法是在第二类,但我在头等舱使用它。这就是我想要做的。我不想在main中编写这么多代码。
但是,当我运行程序时,b.Speed
和 interface IElektroBeyin
{
int Speed{ get; set; } // Hız kontrolü
}
class AA : IElektroBeyin
{
public int Speed { get; set; }
public virtual void GetFaster() { }
public virtual void GetSlower() { }
public void Quest()
{
int x;
Console.WriteLine("Want to get faster ? 1- Yes");
x = Console.Read();
if (x == 1)
{
GetFaster();
}
}
}
class BB : AA
{
public override void GetFaster()
{
Speed += 10;
}
public override void GetSlower()
{
Speed -= 10;
}
}
static void Main(string[] args)
{
BB b = new BB();
AA a = new AA();
a.Quest();
Console.WriteLine(b.Speed);
Console.WriteLine(a.Speed);
Console.ReadLine();
}
}
}
都等于零。我希望他们中的一个是10.如何解决这个问题?
{{1}}
答案 0 :(得分:0)
AA a = new AA();
a.Quest();
AA.Quest()
调用AA.GetFaster()
,但此方法为空。这就是调用它时没有任何反应的原因。 BB.GetFaster()
未被调用,因为它位于AA
的派生类中。你可能希望它反过来。
此外,要获取用户输入的数字,您不能使用Console.Read()
的返回值。使用int.Parse(Console.ReadLine())
或类似的东西。