Czy da sie tak dziedziczyć

0

Siemka,
Średnio ogarniam programowanie i bedzie mi miło jeśli ktoś mi coś doradzi.

Mam 4 klasy które dziedziczą z tej samej klasy abstrakcyjnej.

abstract class Dieta
    {
        

        public double Ilosc
        {
            get;
            set;

        }

        public abstract double Kalorie();
      
    }





    class Weglowodany : Dieta
    {
        public override double Kalorie()
        {
            return Ilosc * 4;
        }
    }

I wywołanie metody

Weglowodany t = new Weglowodany();
            t.Ilosc = 10;
            Console.WriteLine("Ilosc zjedzonych kalorii wynosi:{0}", t.Kalorie());

Wszystkie wygladaja podobnie. I co moge teraz zrobić żeby jakas nowa klasa zbierała wszystkie dane jakie użytkownik poda bo tam jest Bialko, Weglowodany, Tluszcze i Alkohol.
i np od 2000 odejmowała wszystkie kalorie i podawała wynik. Najlepiej jeśli by to się dało zrobić przez dziedziczenie.

1

Zrób sobie listę klasy Dieta, i zapisuj wszystkie klasy pochodne do tej listy.

0

Niestety nie wiem jak to mialbym zrobić, mógłbyś mi napisać jak to zrobić ?

2

Której części zrób sobie listę klasy Dieta nie rozumiesz? (nie nabijam się, tylko poważnie pytam :P)

0

No nie wiem jak mam zrobić tą liste. Czy mam stworzyć jakaś nową klasę i w niej coś napisać żeby zapisywała te dane czy jak to mam zrobić ? Jak bym wiedział to bym nie pisał nic. Ale niestety nie mam pojęcia a potrzebuje to zrobić dzisiaj. Jakbym miał wiecej czasu to bym poszukał w internetach.

2

Niech zgadnę: nie wpadłeś na pomysł wpisania c# lista w Google, prawda?

2
using System;
using System.Text;
using System.Linq;
using System.Collections.Generic;
using System.IO;

abstract class Component {
    public double Calories { get; private set; }
    public string Name { get; private set; }
    public Component(string name, double calories) {
        this.Name = name;
        this.Calories = calories;
    }
}

class Carbohydrate : Component {
    public Carbohydrate(string name, double calories) : base(name, calories) { }
}

class Fat : Component {
    public Fat(string name, double calories) : base(name, calories) { }
}

class Diet {
    public List<Component> Components { get; private set; }

    public Diet(params Component[] components) {
        this.Components = new List<Component>(components);
    }

    // Plus Remove, Add, etc... etc...

    public void Show() {
        this.Components.ForEach(compoment => Console.WriteLine("{0}: Calories: {1}", compoment.Name, compoment.Calories));
        Console.WriteLine("Calories Summary: {0}", this.Components.Sum(component => component.Calories));
    }
}

class Program {
    public static void Main(string[] args) {
        var diet = new Diet(new Fat("Beef", 67), new Carbohydrate("Potato", 50));
        diet.Show();
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1