1、继承
2、super
3、访问修饰符的权限
4、重写
5、抽象类、抽象方法
6、final
7、Object源码解析,掌握其中常用的方法
8、多态
9、instanceof
10、父类到子类的转换
11、引用数据类型之间的转换为
Q:
1、Object里的equals和==的区别
有时候我们比较两个引用类型的数据的时候,我们不太关注他们的访问地址是否一致,而是关注其中的数据是否相同,
这时候就需要我们重写Object的equals方法,来自定义相等的业务逻辑。
2、使用父类作为方法返回值实现多态
3、父类与子类向下转型
4、抽象类和重载
5、Object类里的toString方法的使用
6、instanceof的用法
判断一个对象是否是一个类的实例
7、重写和重载的区别(java基础中的高频面试题)
1、重写是发生在多个类之间的,并且类与类之间有继承关系,而重载是发生在一个类中的;
2、重载要求参数列表不同,这个不同包含三层意思,数量不同、类型不同、位置不同,而重写是要求子类中重写父类的、
方法方法名一致、方法的返回类型一致、方法的形参列表一致、方法的修饰符权限要大于等于父类的访问修饰符
3、构造方法可以重载,不可以重写
4、重写的目的是当父类的方法不能满足子类的需求的时候,这时候就需要子类对父类中的方法进行重写,从而定义
它自己的业务逻辑,重载是提供了方法调用的多样化,可以有不同的参数列表,根据实际开发过程中的要求,
可以对构造方法或者普通方法进行重载编写
5、重载的英文overload,重写的英文是override
8、抽象类的理解
1、需要使用abstract修饰class
2、一般情况如果一个类被修饰成抽象类,那么这个抽象类中都会有抽象方法,但是不是必须的,也就是说
抽象类中可能没有抽象方法,我们在读一些源码的过程中会遇到这样的问题
3、抽象类中可以有常量也可以有变量,可以有方法的定义,也可以有方法的实现
4、如果一个类继承了一个抽象类,那么这个类必须要把抽象类中的所有抽象方法都实现了,
如果没有全部实现,那么该类也必须定义成一个抽象类。
9、访问修饰符的权限
同一个类 同一个包 子类 全局
public Y Y Y Y
protected Y Y Y N
default(缺省的) Y Y N N
private Y N N N
10、引用数据类型之间的转换问题
Computer(电脑类) Ipad Animal(动物类) Object类
11、什么时候用继承?什么时候用抽象类?
继承关系是存在一种is a的关系,如:老虎是一只动物
当我们在写程序的时候,发现某个方法很难去确定它的具体实现的逻辑,换句话说就是不同的子类可能有不同的实现,
那么这时候就需要使用到抽象类和抽象方法了。