【发布时间】:2016-04-20 11:22:42
【问题描述】:
我知道在抽象类中使用静态方法不是最佳实践,但是如果我在抽象类中同时使用静态和非静态方法有什么区别。
我假设调用这些方法没有区别,因为我们不能为抽象类创建实例,所以我们可以只使用类名来调用静态和非静态方法。
除了关键字“静态”之外,它们之间还有其他区别吗?
例如: 抽象类:
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
}
派生类:
public class DerivedClass : AbstractClass
{
#region Public Constructors
public DerivedClass(Args args)
: base(args)
{
}
#endregion
#region Protected Methods
protected override void Responses()
{
//logic
}
#endregion
}
【问题讨论】:
标签: c# access-modifiers