天天看点

java面向对象4-多态

定义:某一类事物的多种存在形态

表现形式:父类变量指向子类实例

  例:动物中猫,狗

  猫这个对象对应的类型是猫类型

  猫 x = new 猫();

  同时猫也是动物中的一种,也可以把猫称为动物

  动物 y = new 猫();

  动物是猫和狗具体事物中抽取出来的父类型

  站在父类的角度看子类对象,看不到子类特有的属性和方法

java面向对象4-多态
java面向对象4-多态
java面向对象4-多态
java面向对象4-多态
java面向对象4-多态

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

java面向对象4-多态

1.需要存在继承或者实现关系

2.要有覆盖操作(子类对父类方法重写)

3.父类类型变量指向子类实例

父类或者接口的变量指向子类(实现类)对象

子类对象的类决定方法的调用

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

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

java面向对象4-多态

成员方法:有

    编译时:要查看引用变量所属的类中是否有所调用的成员

    在运行时:要查看对象所属的类中是否有所调用的方法

成员变量:无

    只是编译类型所指向的成员变量

    即:成员变量没有多态性

静态成员方法:无

    没有多态性

java面向对象4-多态
java面向对象4-多态

   

java面向对象4-多态
java面向对象4-多态

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

向下转型:类似于强制转换

5.5

大多数人都以为是才智成就了科学家,他们错了,是品格。---爱因斯坦