Zapobieganie nadpisywaniu metody przez podklasę C #
Powiedz, że mam abstrakcyjną klasę nadrzędną o nazwie „Parent”, która implementuje metodę o nazwie „DisplayTitle”. Chcę, aby ta metoda była taka sama dla każdej podklasy, która dziedziczy „Parent” - chciałbym błąd kompilacji, jeśli podklasa próbuje zaimplementować własną metodę „DisplayTitle”. Jak mogę to osiągnąć w C #. Wierzę w Javę, po prostu oznaczyłbym metodę jako „ostateczną”, ale nie mogę znaleźć alternatywy w C #. Zabrakło mi „zapieczętowanych” i „nadpisanych”, ale nie mogę uzyskać zachowania, którego szukam.
Na przykład w tym kodzie:
using System;
namespace ConsoleApplication1
{
class Parent
{
public void DisplayTitle() { Console.WriteLine("Parent's Title"); }
}
class ChildSubclass : Parent
{
public void DisplayTitle() { Console.WriteLine("Child's Own Implementation of Title");
}
static void Main(string[] args)
{
ChildSubclass myChild = new ChildSubclass();
myChild.DisplayTitle();
Console.ReadLine();
}
}
}
Chciałbym otrzymać błąd kompilacji mówiący, że „ChildSubClass” nie może zastąpić „DisplayTitle”. Obecnie otrzymuję ostrzeżenie - ale wydaje mi się, że jest to coś, co powinienem móc zrobić i nie znam odpowiednich atrybutów do oznaczania metody.