Вы должны немного прочитать об объектно-ориентированных концепциях программирования.
То, что вы называете подклассом, на самом деле не подкласс, а вложенный класс. Чтобы сделать подклассы Undergraduate
и Postgraduate
классов Degree
, вы хотите сделать что-то вроде этого:
class Degree {}
class Undergraduate : Degree {}
class Postgraduate : Degree {}
Это первая часть.
Итак, вы хотите рассматривать бакалавриата и магистратуры как степени. Вы определите метод getDegree как виртуальный. (Кстати, я предлагаю вам следовать C# Руководству по стилю [msdn] , [github] и написать его в PascalCase -> GetDegree).
Затем в ваших классах вы можете override
метод и предоставить собственную реализацию для каждого подкласса. Таким образом, ваши классы могут выглядеть так:
public class Degree
{
public virtual string GetDegree()
{
return "I am a degree";
}
}
public class Undergraduate : Degree
{
public override string GetDegree()
{
return "I am an undergrad";
}
}
public class Postgraduate : Degree
{
public override string GetDegree()
{
return "I am a postgrad";
}
}
Наконец, вы можете объявить объекты и все они одного типа (градусы):
Degree d1 = new Degree();
Degree d2 = new Undergraduate();
Degree d3 = new Postgraduate();
d1.GetDegree();
d2.GetDegree();
d3.GetDegree();