C#中的抽象类

时间:2011-05-24 11:24:00

标签: c# c#-4.0

我想在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关键字以便更改属性。那将继承这个类的类怎么样?这些课程需要改变什么?

请建议。

4 个答案:

答案 0 :(得分:5)

您需要做的就是将课程标记为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; }
}

答案 1 :(得分:4)

制作课程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基类公开了一些需要由派生类实现的abstract成员。

答案 2 :(得分:2)

这取决于你想要的课程。通常,将抽象关键字放在类级别上就足够了。如果你想要抽象属性,你也必须将它们标记为抽象。

只要将类标记为抽象类,派生类就不需要任何更改。使用抽象属性,可以强制派生类实现这些属性。

答案 3 :(得分:1)

是的,你需要放置像

这样的抽象关键字
public abstract class CreditReportViewModel
{
    public Person Person { get; set; }       
    public DateTime ReportDate { get; set; }
    public string PersonalAddress { get; set; }
    public string EmployerAddress { get; set; }
}

但我不认为任何有效理由你应该使上述类抽象化。