オブジェクト指向のトップレベルの理解 - ポリモーフィズム

目次

ポリモーフィズムとは何ですか?

なぜポリモーフィズムなのか?

ポリモーフィズムを実装する

自己理解


ポリモーフィズムとは何ですか?

概念: ポリモーフィズムとは、同じ操作が異なるオブジェクトに作用し、異なる解釈が行われ、異なる実行結果が生成される可能性があることを意味します。簡単に言うと、基本クラスの参照を使用してサブクラスのオブジェクトを指すことです。

なぜポリモーフィズムなのか?

初め。オブジェクト指向の 3 つの主要な特性を理解するには、1 つのカプセル化により実装の特定の詳細が隠蔽され、コードがモジュール化され、2 番目の継承により既存のコード モジュール (クラス) が拡張され、その目的はコードの再利用です。コードの再利用性に加えて、その 3 つの多態性により、プロジェクト内の密結合の問題も解決され、プログラムのスケーラビリティが向上します。結合度は、モジュールとコード間の相関度を指します。システムの分析を通じて、システムはサブモジュールに分解されます。サブモジュールは、システムの結合度を下げるために安定したインターフェイスを提供します。モジュールを使用してみる他のモジュールのメンバー変数をランダムに参照するのではなく、アクセスするモジュール インターフェイスにアクセスします。

ポリモーフィズムを実装する

オペレーションクラス

    public class Operation
    {
        private double _numberA = 0;
        private double _numberB = 0;
 
        /// 数字A
        public double NumberA
        {
            get
            {
                return _numberA;
            }
            set
            {
                _numberA = value;
            }
        }
 

        /// 数字B
        public double NumberB
        {
            get
            {
                return _numberB;
            }
            set
            {
                _numberB = value;
            }
        }
 
        /// 得到运算结果
        public virtual double GetResult()
        {
            double result = 0;
            return result;
        }

 加算クラス

    class OperationAdd : Operation
    {
        public override double GetResult()
        {
            double result = 0;
            result = NumberA + NumberB;
            return result;
        }
    }

減算クラス

    class OperationAdd : Operation
    {
        public override double GetResult()
        {
            double result = 0;
            result = NumberA + NumberB;
            return result;
        }
    }

単純なファクトリークラス

public class OperationFactory
{
    public static Operation createOperate(string operate)
    {
        Operation oper = null;
        switch (operate)
        {
            case "+":
                {
                    oper = new OperationAdd();
                    break;
                }
            case "-":
                {
                    oper = new OperationSub();
                    break;
                }
        }
 
        return oper;
    }
}

クライアント

static void Main(string[] args)
{
    Operation oper;
    oper = OperationFactory.createOperate("+");
    oper.NumberA = 1;
    oper.NumberB = 2;
    double result = oper.GetResult();
    Console.WriteLine(result);
}

自己理解

ポリモーフィズムはコードの再利用性を向上させるだけでなく、スケーラビリティも大幅に向上させ、オープンとクローズの原則に準拠します。

おすすめ

転載: blog.csdn.net/weixin_44693109/article/details/125010931