C# C语言中的抽象类#
我想在C#中创建一个抽象类。目前,我在C#上这门课: 我想让它成为抽象类,另外两个类将继承它。我是否只需要在类中放置抽象关键字就可以更改属性。那么将继承这个类的类呢。这些课程需要改变什么C# C语言中的抽象类#,c#,c#-4.0,C#,C# 4.0,我想在C#中创建一个抽象类。目前,我在C#上这门课: 我想让它成为抽象类,另外两个类将继承它。我是否只需要在类中放置抽象关键字就可以更改属性。那么将继承这个类的类呢。这些课程需要改变什么 请提出建议。您只需将该类标记为摘要: public abstract class CreditReportViewModel { public Person Person { get; set; } public DateTime ReportDate { get; set; }
请提出建议。您只需将该类标记为
摘要
:
public abstract class CreditReportViewModel
{
public Person Person { get; set; }
public DateTime ReportDate { get; set; }
public string PersonalAddress { get; set; }
public string EmployerAddress { get; set; }
}
这取决于你想让这个班成为什么样的人。通常,将抽象关键字放在类级别就足够了。如果你想拥有抽象属性,你必须将它们标记为抽象属性
派生类不需要任何更改,只要您仅将类标记为抽象类。使用抽象属性,您可以强制派生类实现这些属性。是的,您需要像这样放置抽象关键字
public abstract class CreditReportViewModel
{
public Person Person { get; set; }
public DateTime ReportDate { get; set; }
public string PersonalAddress { get; set; }
public string EmployerAddress { get; set; }
}
但是我认为没有任何有效的理由你应该将上面的类抽象化。使类抽象化的唯一需要的是添加关键字:
public abstract class CreditReportViewModel
{
public Person Person { get; set; }
public DateTime ReportDate { get; set; }
public string PersonalAddress { get; set; }
public string EmployerAddress { get; set; }
}
在这种情况下,实现类不需要添加任何其他实现:
class Derived : CreditReportViewModel { }
如果您还想使成员抽象化
,同样的事情也会发生:
public abstract class CreditReportViewModel
{
public Person Person { get; set; }
public DateTime ReportDate { get; set; }
public string PersonalAddress { get; set; }
public string EmployerAddress { get; set; }
public abstract float MakeSomeCalculation();
}
public class Derived : CreditReportViewModel
{
public override float MakeSomeCalculation()
{
// This method must be implemented in the derived class
}
}
典型的情况是
抽象
基类公开了一些需要由派生类实现的抽象
成员 我不得不承认,我建议你试着输入abstract关键字,看看编译时会发生什么。:)如果这就是CreditReportViewModel中的所有行为,那么它作为一个接口可能更有意义,尽管在这种情况下,实现者实际上必须进行一些实现。
public abstract class CreditReportViewModel
{
public Person Person { get; set; }
public DateTime ReportDate { get; set; }
public string PersonalAddress { get; set; }
public string EmployerAddress { get; set; }
public abstract float MakeSomeCalculation();
}
public class Derived : CreditReportViewModel
{
public override float MakeSomeCalculation()
{
// This method must be implemented in the derived class
}
}