Ich weiß, es ist keine beste Praxis, statische Methode in der abstrakten Klasse zu verwenden, aber was ist der Unterschied, wenn ich statische und nicht statische Methode in abstrakter Klasse verwende.Was ist der Unterschied zwischen der nicht statischen Methode und der statischen Methode einer abstrakten Klasse?
Ich nehme an, es gibt keinen Unterschied beim Aufruf dieser Methoden, weil wir keine Instanz für abstrakte Klasse erstellen können, so dass wir sowohl statische als auch nicht-statische Methode nur mit Klassennamen aufrufen können.
Gibt es außer dem Stichwort 'Static' noch einen anderen Unterschied?
Ex: Abstrakte Klasse:
abstract public class AbstractClass
{
#region Constructor
protected AbstractClass(Args args): this(args)
{
}
#endregion
#region public static methods
public static object FormLoad(Args args)
{
//Logic
}
public static object Sample(Args args)
{
//Logic
}
#endregion
#region Public non-static methods
public AbstractClass CreateResponse(Args args)
{
//Logic
}
public void ClearDialog()
{
//Logic
}
#endregion
#region Abstract Method
abstract protected void Responses();
#endregion
}
Abgeleitete Klasse:
public class DerivedClass : AbstractClass
{
#region Public Constructors
public DerivedClass(Args args)
: base(args)
{
}
#endregion
#region Protected Methods
protected override void Responses()
{
//logic
}
#endregion
}