1

我们可以使用基类对象访问派生类属性吗?

我有一个基类

 public abstract class FnmaRecord
    {
        public int Id { get; set; }            
        public abstract String Prefix
        {
            get;
        }
    }

并且有许多继承了 FnmaRecord 类的派生类

 public class TransactionHeader : FnmaRecord
    {
        public override string Prefix { get {return "TH";} }

        public static readonly string TransactionId = "T100099-002";

        public String TransactionControlNumber { get; set; }

    }


public class TitleHolder : FnmaRecord
    {
        public override string Prefix { get {return "02C";} }

        public string TitleHolderName { get; set; }
    }

现在我可以在另一个类中使用 FnmaRecord 的实例来访问 TitleHolder 中的属性吗?

4

2 回答 2

5

不,正如 Fredrik Mörk 在他们的回答中所说:

基类对派生类属性一无所知(更重要的是不应该)。不同的派生类可以有一组不同的附加属性。让基类意识到这一点会抵消面向对象设计的重要原则

于 2013-09-04T14:04:30.007 回答
1

不,您只需在要放置 FnmaRecord 实例的类上创建 TitleHolder 实例,这样您就可以访问 TitleHolder 和 FnmaRecord 的属性。

于 2013-09-04T14:04:19.697 回答