1、代码块是什么,分为哪几类,各自有什么特点?
代码块是什么:
在java中,被{}括起来的代码
分为哪几类:
1.静态代码块:用来初始化类,随着类的加载就加载,只加载一次,一般用来加载驱动
2.局部代码块:限定了变量的生命周期,及早释放,提高了内存的利用率
3.构造代码块:把多个构造方法相同的代码放在一起,在调用构造方法是会执行,并在构造方法之前执行
4.同步代码块:以后再填
2、子父类
都有静态代码块、构造代码块、构造方法,那么他们六者之间的执行流程是什么?
父类的静态代码块----子类的构造代码块----父类的构造代码块---
父类的构造方法----子类的构造代码块----子类的构造方法
3、继承的好处、弊端分别是什么?
好处:
1.提高代码的复用性
2.提高代码的维护性
3.让类与类产生了关系,是多态的前提
弊端:
1.提高类的偶合性
4、Java中继承的特点是什么?
特点:
1.单继承,不支持多继承,但是支持多层继承
2.如果用到一个类的所有功能可以用该体系的最底层的类创建对象
如果想看这个体系的公共特性,可以看该体系的最顶层的类
5、Java中继承的注意事项是什么?我们什么时候使用继承?
继承的注意事项:
1.子类只能继承父类的非私有的成员
2.子类不能继承父类的构造方法
什么时候使用继承:
1.体现一种"is a"关系时,也就是说,子类是父类的一种时
6、this关键字和super关键字分别代表什么,以及他们各自的作用分别是什么?
this:代表当前对象,谁调用我,我就是谁.
super:代表当前对象父类的引用.
调用成员变量:
this:调用本类的和父类的非私有的成员变量
super:调用父类的成员变量
调用构造方法:
this:调用本类的构造方法
super:调用父类的构造方法
调用成员函数:
this:调用本类的和父类的非私有的成员函数
super:调用父类的成员函数
8、继承中构造方法的执行流程是什么?
先执行父类的构造方法再执行子类的构造方法
9、为什么子类中所有的构造方法默认都会访问父类的空参构造?
假如父类没有无参构造方法,子类应该怎么办?
因为子类继承了父类的数据,有可能会用到父类的数据,所以要调用父类的
空参构造函数来初始化父类
子类有两种方式解决:
1.利用super关键字,在构造函数中调用父类的构造方法.
2.在一个构造方法A中利用super关键字调用父类的有参构造方法,'
然后利用this关键字调用构造方法A.
10、super关键字和this关键字可以在构造方法中共存吗?
不能,因为super关键字和this关键字都需要在构造方法的第一句语句上,
所以不能同时出现
11、Overload和Override的区别是什么?方法重载能改变返回值类型吗?
Overload是重载的意思,在同一个类中,方法名相同,但形参列表不同,与返回值无关
Override是重写的意思,在子类中,存在与父类一模一样,只是函数体不一样的函数,与返回值有个
方法重载可以改变返回值类型,方法重载与返回值无关
12、final关键字可以做什么,有什么特点?
修饰类:该类不能被继承
修饰变量:该变量为常量
修饰函数:该函数不能被继承
13、final修饰局部变量时,有什么特点?
基本数据类型:其值不能发生改变
引用数据类型:其地址值不能改变,对象的属性可以改变 |
|