Наследование - исправить ошибку в коде - 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);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы