java面向对象4-多态

5 多态

5.1多态:polymorphism概念

定义:某一类事物的多种存在形态
表现形式:父类变量指向子类实例
  例:动物中猫,狗
  猫这个对象对应的类型是猫类型
  猫 x = new 猫();
  同时猫也是动物中的一种,也可以把猫称为动物
  动物 y = new 猫();
  动物是猫和狗具体事物中抽取出来的父类型
  站在父类的角度看子类对象,看不到子类特有的属性和方法

 

 

相同的的方法会被重写,变量没有重写之说。如果子类声明了父类一样的变量,那意味着子类中将有两个相同名称的变量!

 

5.2多态的作用和前提

5.2.1多态的前提:

1.需要存在继承或者实现关系
2.要有覆盖操作(子类对父类方法重写)
3.父类类型变量指向子类实例

5.2.2程序中体现::

父类或者接口的变量指向子类(实现类)对象
子类对象的类决定方法的调用

5.2.2多态的前提:

多态的存在提高了程序的扩展性和后期可维护性

  note:编译类型和运行时类型(引用数据类型)

 

5.3多态的特点

  • 成员方法:有

    编译时:要查看引用变量所属的类中是否有所调用的成员
    在运行时:要查看对象所属的类中是否有所调用的方法

  • 成员变量:无

    只是编译类型所指向的成员变量
    即:成员变量没有多态性

  • 静态成员方法:无

    没有多态性

 

   

5.4对比于类型转换

向上转型:相当于基本数据类型的隐式转换;
向下转型:类似于强制转换

 

5.5

原文地址:https://www.cnblogs.com/wqbin/p/11172100.html