Я предлагаю перепроектирования с свойствами вместо Get
функций; Что касается вашего вопроса в производном классе конструктор, вы должны реализовать
- вызов соответствующий базовый конструктор класса
- добавить производный класс логики
что-то вроде этого:
abstract class Film {
// let field be private, but property be protected
private string m_FilmName;
public Film(string filmName) {
FilmName = filmName;
}
// FilmNam is more natural/readable in your case than GetFilmName() method
public string FilmName {
get {
return m_FilmName;
}
protected set { // "private set" seems to be a better choice
// do not forget to validate the input value in public/protected methods
if (string.IsNullOrWhiteSpace(value))
throw new ArgumentNullException("value",
"FileName must not be null or white space");
m_FilmName = value;
}
}
}
...
class Siries: Film {
private int m_SeasonNumber;
// Answer:
// 1. You have to call base class constructor ": base(filmName)"
// 2. Add up some logic with "seasonNumber" - "SeasonNumber = seasonNumber;"
public Siries(String filmName, int seasonNumber = 1)
: base(filmName) {
SeasonNumber = seasonNumber;
}
public int SeasonNumber {
get {
return m_SeasonNumber;
}
protected set { // may be "private set" or just "set" (public)
// do not forget to validate the input value in public/protected methods
if (value <= 0)
throw new ArgumentOutOfRange("value", "SeasonNumber must be positive");
m_SeasonNumber = value;
}
}
}
Вам необходимо прочитать несколько руководств по полиморфизму C#: https://msdn.microsoft.com/en-us/library/ms173152.aspx и https://msdn.microsoft.com/en-us/library /k6sa6h87.aspx –
Полиморфизм - это больше о переопределении методов и свойств, чем конструкторов ... Что вы подразумеваете под «как использовать его для объектов?» Классы - это шаблоны объектов, поэтому, если вы понимаете, что для классов нет ничего более понимать в «объектах». – Divisadero
Downvoting, потому что можно было взять книгу, google it, провести некоторое исследование, прежде чем позволить другим решить свои проблемы. –