子类和子类型
- 类定义了类型
- 子类定义了类型
- 子类的对象可以别当做父类的对象来使用
- 复制给需要对象的函数
- 传递给需要父类对象的函数
- 放进存放父类对象的容器里
子类型与赋值
子类的对象可以赋值给父类的变量
子类的对象可以传递给需要父类对象的函数
子类的对象可以存放在父类对象的容器里
--多态变量
- Java的对象变量是多态的,他能保存不知一种类型的对象
- 他们可以保存的是声明类型对象,或声明类型的子类的对象
- 当把子类的对象赋给父类的变量的时候,就发生了向上的造型
向上造型
把一个对象的类型赋值给类型的变量
造型cast
- 子类的对象可以赋值给父类的变量
- 注意!Java中不存在对象对对象赋值,是让一个管理者,管理一个对象
- 父类的对象不能赋值给子类的变量
Vechicle v;
Car c=new car;
v=c;//可以
c=v;//编译错误 - 可以用造型;
c=(Car) v;
(只有当v这个变量实际管理的是Car才行)
函数调用的绑定
- 当通过对象变量调用函数额时候,调用那个函数这件事情叫做绑定
- 静态绑定:根据变量的声明类型来决定
动态绑定:根据局变量的动态类型来决定 - 在成员函数中调用其他成员函数也是通过this这个变量来调用的
覆盖override
- 子类和父类中存在名称和参数完全相同的函数,这一对函数构成覆盖关系
- 通过父类的变量调用用存在覆盖关系的函数时,会调用变量当时所管理的对象所属的函数
多态;通过一个变量去调用一个函数
object类
类型系统-1
所有的类都是集成自Object类
toSting()
equals()