Професионална програма
Loading...
+ Нов въпрос
Hristo_Penchev avatar Hristo_Penchev 389 Точки

[Technical Issue] OOP - override string ToString() при унаследяване

Здравейте,

Това стрингосване не ми е много ясно и се опитвам да разбера как работи. Ще дам следния пример. Да кажем имаме

class Animal

{

    private int age;

    private string location;

.........................................

    public override string ToString()

    {

        string output = "";

        output + = "Age: " + age.ToString() + "\n";

        output+= "Location: " + location + "\n";

        return string.Format(output);

    }

}

 

До тук ясно какво работи стрингосването. Правим унаследен клас 

class Dog: Animal

{

    private string breed;

...................................

 public override string ToString()

}

И тук идват трудностите. Как да направя така, че като стрингосам Dog, да ми стрингоса age и location както е според класа Animal и да добави после 

output += "Breed: " + breed;

Разбира се, винаги е вариант да копирам целия код от метода в родителския клас и да го сложа в Dog, като после допиша породата, но ми се струва доста дървено решение и повтаряне на кода. Та има ли начин да накарам Dog да се стрингоса по начина, зададен в Animal и после да добави останалите променливи?
Пиша в Main() dog.ToString() и то ми вика Animal.ToString(), прави каквот оправи, добавя специфичните неща за dog и ми връща стринга. Надявам се да съм формулирал въпроса си достатъчно ясно. Благодаря предварително.

0
C# OOP Basics 30/12/2014 02:35:25
Hristo_Penchev avatar Hristo_Penchev 389 Точки

Така стана. Мерси!

0