多态变量:
子类的对象可以被当作父类的对象来使用
子类的对象可以赋值给父类的变量
子类的对象可以传递给需要父类对象的函数
子类的对象可以放在存放父类对象的容器里
函数调用的绑定:
当通过函数对象变量调用函数的时候,调用哪个函数这件事叫做绑定
静态绑定:根据变量的声明类型来决定
动态绑定:根据变量的动态类型来决定
(Java中默认是动态绑定)
在成员函数中调用其他成员函数也是通过this这个对象变量来调用的
覆盖override:
子类和父类中存在名称和参数完全相同的函数,这一对函数构成覆盖关系
通过父类的变量调用存在覆盖关系的函数时会调用变量当时管理的对象所属的类的函数
在Java中所有的对象变量都是多态的(即多种形态),即他们可以保存不止一种类型的对象
可以保存声明类型的对象或者其子类的对象
向上造型指子类的对象赋给父类的变量发生的情况
造型cast
子类的对象可以赋值给父类的变量。PS:Java中不存在对象对对象赋值的
父类的对象不能赋值给子类的变量
Vechicle v;
Car c = new Car();
v = c;//可以
c = v; 编译错误!!
可以用造型:
c = (Car) v;
(只有当v这个变量实际管理的是Car才行)
造型的话只是将v当作Car型看待,而不是转换成Car型
object类部分:
所有的类都是继承自object的
object类的函数:
toString()
equals()
增加新的类型:
在子类父类架构下,增加一个新的类,你的代码不需要修改就可以适应新的数据和内容,具有可扩展性
更深的继承
将子类中的一个作为父类再增加子类的子类