Наследование - исправить ошибку в коде - 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); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д