Verhindern, dass eine C # -Unterklasse eine Methode überschreibt
Angenommen, ich habe eine abstrakte Elternklasse namens "Parent", die eine Methode namens "DisplayTitle" implementiert. Ich möchte, dass diese Methode für jede Unterklasse, die "Parent" erbt, gleich ist. Ich hätte gerne einen Kompilierungsfehler, wenn eine Unterklasse versucht, ihre eigene "DisplayTitle" -Methode zu implementieren. Wie kann ich das in C # erreichen. Ich glaube an Java, ich würde die Methode nur als "final" markieren, aber ich kann keine Alternative in C # finden. Ich habe mit "Sealed" und "Override" rumgespielt, aber ich kann nicht das Verhalten bekommen, das ich suche.
Zum Beispiel in diesem Code:
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();
}
}
}
Ich möchte einen Kompilierungsfehler erhalten, der besagt, dass die "ChildSubClass" "DisplayTitle" nicht überschreiben kann. Ich erhalte derzeit eine Warnung - aber es scheint, als ob dies etwas ist, was ich tun sollte, und ich kenne nicht die richtigen Attribute, um die Methode zu kennzeichnen.