Przede wszystkim to zadanie nie ma nic z dziedziczeniem.
Idealne rozwiązanie jest takie (to, co mówił @leggo):
public class Auto
{
public int Year {get; set;}
public decimal Price {get;set;}
public string Model {get; private set;} //to może być też jakiś enum, nie wiemy co chcesz tak naprawdę mieć
public Auto(string model)
{
Model = model;
}
}
Tutaj konstruktor jak i cała klasa może być w miarę dowolnie budowana, jeśli chodzi o właściwości. Nie wiemy dokładnie co chcesz uzyskać. Na pewno pamiętaj, żeby nigdy nie upubliczniać swoich pól, tak jak to zrobiłeś. To właściwości powinny być publiczne, a nie pola, czyli:
public int Year {get; set;}
zamiast:
public int year;
Ewentualnie właściwość z tzw. "backing field":
int year;
public int Year
{
get { return yesr; }
set { year = value; }
}
Drugą klasą, jaką powinieneś mieć to coś do obliczania rat, np:
public class PricePartCalculator
{
public decimal CalculateMonthPrice(Auto auto, int yearCount)
{
return auto.Price / yearCount / 12;
}
}
Można też tak:
public class PricePartCalculator
{
int yearCount;
public PricePartCalculator(int yearCount)
{
this.yearCount = yearCount;
}
public decimal CalculateMonthPrice(Auto auto)
{
return auto.Price / yearCount / 12;
}
}
Można też tak:
public abstract class PricePartCalculator
{
protected int yearCount;
public PricePartCalculator(int yearCount)
{
this.yearCount = yearCount;
}
public abstract decimal CalculatePricePart(Auto auto);
}
public class MonthPriceCalculator: PricePartCalculator
{
public MonthPriceCalculator(int yearCount): base(yearCount)
{
}
public override decimal CalculatePricePart(Auto auto)
{
//itd.
}
}
Miłej zabawy :)