多态和Object类
通过对象变量调用函数的时候,调用哪个函数这件事情就叫做绑定
静态绑定:根据变量的声明类型来决定
动态绑定:根据变量的动态类型来决定
在成员函数中调用其他成员函数也是通过this这个对象变量来调用的
覆盖override
子类和父类中存在名称和参数表完全相同的函数,这一对就构成覆盖关系
通过父类的变量调用存在覆盖关系的函数的时候,会调用变量当时锁管理的
对象所属的类的函数
Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类。Object类是Java中其他所有类的祖先.
Object类是Java中唯一没有父类的类。其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法。
Object 类位于 java.lang 包中,编译时会自动导入,我们创建一个类时,如果没有明确继承一个父类,那么它就会自动继承 Object,成为 Object 的子类。
函数:
-
-
equals()
-
-
进行判断
可以给你当作注释用,感觉这个也不能说明什么,注释也没什么用
可以告诉读你代码的人,这是对它父类方法的重写,其实很多代码规范没有为什么,规范就是规范,代码的可读性还是很重要的
编译器可以验证@Override下面的方法名称是否是你父类中所有的,如果没有就会报错
比如当你想要在子类中重写父类的一个方法,但是你把名字打错了,当你写了@Override编译器会提示你,你写的这个方法父类中没有;
但是如果你没有写@Override编译器就会觉得这个是你子类中写的新的方法,并不会报错,到时候你debug还是很麻烦的一件事。