Переопределение метода - C#

Узнай цену своей работы

Формулировка задачи:

Не могу переопределить в производном классе метод Change, чтобы изменялось еще и грузоподъемность.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace qwe
{
    class Program
    {
        static void Main(string[] args)
        {
            car car = new car("BMW", 5, 250);
            Console.WriteLine(car.show());
            gruzovik gruzovik = new gruzovik("KAMAZ", 5, 250, 100);
            Console.WriteLine(gruzovik.show());
            Console.WriteLine("Change");
            string cn = Convert.ToString(Console.ReadLine());
            int cc = int.Parse(Console.ReadLine());
            int cp = int.Parse(Console.ReadLine());
            int g = int.Parse(Console.ReadLine());
            string gname = Convert.ToString(Console.ReadLine());
            int gc = int.Parse(Console.ReadLine());
            int gp = int.Parse(Console.ReadLine());
            int ggruz = int.Parse(Console.ReadLine());
            car.change(cn, cc, cp);
            gruzovik.change(gname, gc, gp, ggruz);
            Console.WriteLine(car.show());
            Console.WriteLine(gruzovik.show());
        }
    }
    public class car
    {
        public string name;
        public int c;
        public int power;
        public car(string name, int c, int power)
        {
            this.name = name;
            this.c = c;
            this.power = power;
        }
        public virtual string show()
        {
            string s = name + " " + c + " " + power + " ";
            return s;
        }
        public virtual void change(string cn, int cc, int cp)
        {
            this.name = cn;
            this.c = cc;
            this.power = cp;
        }
        ~car()
        {
            Console.WriteLine("destruction");
        }
    }
    class gruzovik : car
    {
        public int gruz;
        public gruzovik(string name, int c, int power, int gruz)
            : base(name, c, power)
        {
            this.gruz = gruz;
        }
        public override string show()
        {
            return base.show() + " " + gruz;
        }
        public override void change(string cn, int cc, int cp, int ggruz)
        {
            this.gruz = ggruz;
            base.change(cn, cc, cp, ggruz);
        }
    }
}

Решение задачи: «Переопределение метода»

textual
Листинг программы
public void change(string cn, int cc, int cp, int ggruz)
{
    this.gruz = ggruz;
    base.change(cn, cc, cp);
}

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


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

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

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