多态:指为不同数据类型的实体提供统一的接口。同一操作作用于不同的对象可以有不同的解释,产生不同的执行结果。
这是对于多态的解释,现在把这句话进行拆解理解它在代码上的体现,我们把第一句话“为不同数据类型的实体提供统一的接口。”在代码上的体现就是在下面静态方法中的switch选择结构中的为oper这个变量赋值的语句,就是在不同数据类型的实体提供了统一的接口,

public class OperationFactory {

    public static Operation createOperate(String Operate) throws Exception {
        Operation oper=null;
        switch(Operate){
            case "+":
                oper=new OperationAdd();
                break;
            case "-":
                oper=new OperationSub();
                break;
            case "*":
                oper=new OperationMul();
                break;
            case"/":
                oper=new OperationDiv();
                break;
            default:
                throw new Exception("没相关计算形式");

        }
        return oper;
    }
}

那么第二句话“同一操作作用于不同的对象可以有不同的解释,产生不同的执行结果。”

这里我们可以看到两张图片中都有一个getResult()方法,但是对应的方法实现都是不一样,比如Add这个类中的方法进行的是加法运算,而Sub这个类中的方法进行的是减法运算,当我们父类的引用指向不同的子类时,使用相同的方法得到的结果是不相同的。

再次理解多态概念_数据类型


再次理解多态概念_面向对象_02