Наследование - исправить ошибку в коде - C#
Формулировка задачи:
В первом класса все выводится правильно 10, 2, а во втором надо вывести 70, 10, но выводится 20 и 5. В чем проблема и как это исправить ?
using System;
class Rebenok
{
int ves, skorost, a = 20, b = 5, c = 0;
public int Ves
{
get { return ves; }
set
{
if (value > a)
ves = a;
else if (value < b)
ves = b;
else ves = value;
}
}
public int Skorost
{
get { return skorost; }
set
{
if (value > b)
skorost = b;
else if (value < c)
skorost = c;
else skorost = value;
}
}
public virtual void Gambino()
{
Console.WriteLine("Ребенок:\n\tВес ребенка: " + Ves + "\n\tСкорость ребенка: " + Skorost);
}
}
class Passagir : Rebenok
{
int a = 150, b = 25, c = 0;
public override void Gambino()
{
Console.WriteLine("Пассажир:\n\tВес пассажира: " + Ves + "\n\tСкорость пассажира: " + Skorost);
}
}
class Boss
{
public static void Main()
{
Rebenok reb = new Rebenok();
reb.Ves = 10;
reb.Skorost = 2;
reb.Gambino();
Passagir pas = new Passagir();
pas.Ves = 70;
pas.Skorost = 10;
pas.Gambino();
}
}Решение задачи: «Наследование - исправить ошибку в коде»
textual
Листинг программы
class Rebenok
{
int ves, skorost, a = 20, b = 5, c = 0;
public int Ves
{
get { return ves; }
set
{
if (value > a)
//Призначении 70 срабатывает это условие и ves записывается 20 т.к 70 > 20
ves = a;
else if (value < b)
ves = b;
else ves = value;
}
}
public int Skorost
{
get { return skorost; }
set
{
if (value > b)
//Призначении 10 срабатывает это условие и skorost записывается 5 т.к 10 > 5
skorost = b;
else if (value < c)
skorost = c;
else skorost = value;
}
}
public virtual void Gambino()
{
Console.WriteLine("Ребенок:\n\tВес ребенка: " + Ves + "\n\tСкорость ребенка: " + Skorost);
}
}