多态你真的了解吗?

简介: 多态你真的了解吗?

概念


面向对象的三大特性之一“多态”。多态表示不同的对象可以执行相同的动作,但要通过他们自己的实现代码来执行。多态首先是建立在继承的基础上的,先有继承才能有多态。多态是指不同的子类在继承父类后分别都重写覆盖了父类的方法,即父类同一个方法,在继承的子类中表现出不同的形式。多态成立的另一个条件是在创建子类时候必须使用父类new子类的方式。


例子理解


父亲是唱戏的,但是这天父亲需要让儿子代替自己去上台。这个时候


1、子类是以父类的身份上台


2、子类模仿父类的唱戏手法表演。注意这里说的是模仿,模仿也就是学的在像也不是儿子自己的方法。


3、子类自己特有的方法不可以展现出来


代码体现


有一个加减乘除的计算方法。以下是父类


//运算类
public class Operation{
  private double _numberA=0;
  private double _numberB=0;
  public double GetNumberA(){
  return _numberA;
  }
  public void SetNumberA(double NumberA){
  _numberA=NumberA;
  }
    public double GetNumberB(){
  return _numberB;
  }
  public void SetNumberA(double NumberB){
  _numberA=NumberB;
  }
  public double GetResult(){
    double result=0;
    return result;
  }
}


子类继承父类


//加法类
public class OperationAdd extends Operation{
  @override
  public double GetResult(){
       return super.GetNumberA()+super.GetNumberB();
  }
}
//减法类
public class OperationSub extends Operation{
  @override
  public double GetResult(){
       return super.GetNumberA()-super.GetNumberB();
  }
}


多态的体现是在父类的引用指向子类的 对象


//简单工厂类
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;
  }
}



简单总结:多态的前提是建立在继承之上的,父类需要有一个虚拟的方法(虚方法),子类去重写父类的方法,也就是父类的引用指向子类的对象,Animal animal=new Cat();


相关文章
|
7月前
|
C++
c++多态
c++多态
60 0
|
7月前
|
存储 C++
C++中的多态
C++中的多态
68 0
什么是多态?
什么是多态?
57 0
|
7月前
|
C++
|
存储 设计模式 编译器
多态【C++】
多态【C++】
69 0
|
C++
【C++】非常重要的——多态(一)
【C++】非常重要的——多态
60 0