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 に答える