C#中的抽象类

问题描述

| 我想在C#中创建一个抽象类。目前,我在C#中有此类:
public class CreditReportviewmodel
{
    public Person Person { get; set; }       
    public DateTime ReportDate { get; set; }
    public string PersonalAddress { get; set; }
    public string EmployerAddress { get; set; }
}
我想使其成为抽象类,另外两个类将继承它。我是否只需要在类中放置抽象关键字就需要更改属性。那么将继承此类的类呢?在这些课程中需要更改什么? 请提出建议。     

解决方法

使类
abstract
唯一需要做的就是添加关键字:
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 { }
如果您也想使成员
abstract
,同样的事情也会发生:
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
基类公开了一些derived1ѭ成员,这些成员需要由派生类实现。     ,您所要做的只是将课程标记为
abstract
public abstract class CreditReportViewModel
{
    public Person Person { get; set; }       
    public DateTime ReportDate { get; set; }
    public string PersonalAddress { get; set; }
    public string EmployerAddress { get; set; }
}
    ,这取决于您要成为的班级。通常,将abstract关键字放在类级别就足够了。如果要具有抽象属性,则也必须将它们标记为抽象。 只要您将唯一的类标记为抽象,派生类就不需要任何更改。使用抽象属性,您可以强制派生类实现这些属性。     ,是的,您需要放置抽象关键字,例如
public abstract class CreditReportViewModel
{
    public Person Person { get; set; }       
    public DateTime ReportDate { get; set; }
    public string PersonalAddress { get; set; }
    public string EmployerAddress { get; set; }
}
但我不认为您应该将上述类抽象化。