面向对象的顶级理解——多态篇

目录

什么是多态?

为什么要有多态?

实现多态

自我理解


什么是多态?

概念:多态是指同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。简单的说:就是用基类的引用指向子类的对象。

为什么要有多态?

首先。要了解面向对象的三大特性 ,其一封装可以隐藏实现具体细节,使得代码模块化;其二继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而其三多态除了代码的复用性外,还可以解决项目中紧偶合的问题,提高程序的可扩展性.。耦合度讲的是模块模块之间,代码代码之间的关联度,通过对系统的分析把他分解成一个一个子模块,子模块提供稳定的接口,达到降低系统耦合度的的目的,模块模块之间尽量使用模块接口访问,而不是随意引用其他模块的成员变量。

实现多态

运算类

    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