①如何继承一个类?
1、首先根据开发需求确定哪个类充当子类,充当父类
2、一般情况下,具有公共属性、公共方法的组件充当父类
将公共方法进行扩展的类充当子类。
3、在代码上通过关键字extends实现继承关系
4、子类在前,父类在后;子类 extends 父类
5、只有单继承,(一个子类只有一个直接父类)
但是可以多层继承。
6、继承具有传递性
7、在java体系中,Object类是所有类的祖宗类,
都直接或间接继承自object类,称为基类(超类)
◆◆◆◆◆面试题:请说出Object类的所在的包名和几个常用的方法的含义
②使用继承有什么好处?
1、代码复用,在开发过程中减少代码量
2、提高软件的扩展性
3、在企业级开发过程中,方便分工协作,提高代码效率,降低开发成本
③如何通过super调用父类的属性,方法和构造方法?
(拿的都是父类的对应的构造方法,如果父类没有就会报错,找不到亲爹)
1、子类具有调用父类元素的权限
2、使用关键字super调用父类元素
(调用默认构造方法super()或super(参数1,参数2))
调用构造方法时必须放在构造方法中并且是第一行
有时候是可以省略的
④抽象类和抽象方法的特点是什么?二者是什么关系?
1、使用abstract修饰的类(方法)成为抽象类(方法)
2、抽象类不能实例化(创建对象)但有构造方法!!!!!
3、抽象类中不一定拥有抽象方法,与有无抽象方法无关;
4、抽象类存在子类,并且子类去完成抽象类中抽象方法
如果抽象类中有多个抽象方法时,强烈推荐子类完成所有
抽象方法,否则将子类定义为抽象类。
(不然会报错,子类必须实现抽象类中的抽象方法,一直靠后代去完成)
5、抽象方法的特点在类中定义时只有声明,没有方法体
也就是说没有功能的具体实现
二者关系:抽象类中可以有或者没有抽象方法。
抽象方法存在于抽象类或者接口中
⑤子类不能继承父类的哪些财产?
财产:属性、方法(成员方法,构造方法,抽象方法)
1、子类不能继承父类私有的属性、方法
2、子类不能继承父类的构造方法(哪怕是punlic修饰的)
3、子类不能继承final修饰的财产
⑥方法重写必须满足的要求是什么?
1、方法重写是在继承关系的基础之上存在的
2、子类根据开发需求重写(覆盖)父类中的方法
3、方法重写:A:重写方法名与被重写的方法名一致
B:形式参数列表相同
C:返回值相同或者是其子类
D:权限修饰符作用范围不能缩小
◆◆◆◆◆面试题:请说出方法重写和方法重载(覆盖)的区别
A:方法重载发生在一个类中,重写发生在子类和父类
两个类中
B:方法重载时,形参列表不同,重写时形参列表与父类
完全相同;
C:方法重载与返回值类型无关,重写时必须是父类中的返回值
类型相同或者是其子类
D:方法重载与权限修饰符无关,重写是子类的权限修饰符的作用范围
不能缩小(可以大于等于权限范围)
⑦abstract关键字可以修饰什么?不能修饰什么?
1、可以修饰类、方法;
2、不能修饰属性、构造方法
⑧它和哪三个关键字不能同时修饰一个方法或者类?
static private final 修饰一个方法或者类
⑨final关键字可以修饰什么?不能修饰什么?
1、final修饰的类没有子类,不能被继承(断子绝孙)
2、final可以修饰方法,此时该方法不能被重写
3、final可以修饰变量,赋初始后值不可改变,变成常量
⑩在多级继承条件下构造方法的调用规则是什么?
1、在构造方法中没有super关键字和this关键字调用构造方法的前提
在调用构造方法中会逐级往上执行,直到Object,然后从上到下执行
2、在构造方法中有super关键字和this关键字,即显式(super(),this())
◆Object类的相关知识点?
1、了解Object类存在的物理包rt
2、了解Object累的逻辑包java.lang.Object
3、Object是其他类的祖先,有时候成为基类和超类
4、了解Object类中的常见的方法和常见的修饰符(关键字)