В производном классе вы можете вызвать метод в базовом классе, используя:
public override void RunCheck()
{
base.RunCheck();
// Followed by the implementation of the derived class
}
Как упоминалось в комментариях, базовый метод должен быть объявлен как virtual
, чтобы разрешить переопределение:
public virtual void RunCheck() { ... }
Для вашего метода PrintOut () магического способа не существует, но вы могли бы использовать базовый класс в качестве параметра, а затем проверить тип.
private void PrintOut(baseCheck f)
{
Console.WriteLine("Started: {0}", f.StartTime)
Console.WriteLine("Directory: {0}", f.DirectoryName)
if (check is FileCheck)
{
Console.WriteLine("File: {0}", ((FileCheck)f).FileName}
}
}
Или вы можете использовать перегрузки:
private void PrintOut(baseCheck f)
{
Console.WriteLine("Started: {0}", f.StartTime)
Console.WriteLine("Directory: {0}", f.DirectoryName)
}
private void PrintOut(FileCheck f)
{
PrintOut((baseCheck)f);
Console.WriteLine("File: {0}", ((FileCheck)f).FileName}
}
Или вы можете использовать свой метод PrintOut в своем классе (возможно, даже использовать существующий метод ToString()
) и переопределить его при необходимости.