1:代码块是什么?代码块的分类和各自特点?
代码块是:在Java中,使用{}括起来的代码被称为代码块。
分类:局部代码块,构造代码块,静态代码块,同步代码块
特点:
局部代码块:在方法中出现;限定变量生命周期,及早释放,提高内存利用率
构造代码块 (初始化块):在类中方法外出现;多个构造方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行
静态代码块: 在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。
2:静态代码块,构造代码块,构造方法的执行流程?
首先执行主方法类中的静态代码块,再执行主方法,再执行静态代码块,再执行构造代码块,然后执行构造方法。
3:继承概述
让类与类之间产生关系,子父类关系
4:继承的好处
继承的好处:1.提高了代码的复用性2.提高了代码的维护性3.让类与类之间产生了关系,是多态的前提
5:Java中继承的特点
1.ava只支持单继承,不支持多继承
2.Java支持多重继承
6:Java中继承的注意事项?以及我们什么时候使用继承?
Java中继承的注意事项:子类只能继承父类所有非私有的成员(成员方法和成员变量)
子类不能继承父类的构造方法,但是可以通过super(马上讲)关键字去访问父类构造方法。
不要为了部分功能而去继承
7:继承中的成员访问特点
A:成员变量
在子类方法中访问一个变量
B:成员方法
在测试类中通过子类对象去访问一个方法
8:继承中构造方法的执行流程?假如父类没有无参构造方法,子类应该怎么办?
静态代码块在使用类时执行。 普通代码块在创建对象时执行。
父类的静态代码块>子类静态代码块>父类的代码块>父类的构造方法>子类的代码块>子类的构造方法
在创建子类时,先调用父类的构造方法先创建父类的实例,在创建子类的实例。
如果父类有无参构造方法,子类可以不显式调用super(),如果没有无参构造方法,必须手动显式调用super(),否则报编译错误
9:面试题:
方法重写和方法重载的区别?方法重载能改变返回值类型吗?
Overload 重载
Override 重写
方法重写和方法重载的区别
1)重写一般发生在父子之间,重载一般在同一个类中。
2)重写要求方法名,返回值类型,参数列表必须与父类相同,并且修饰符范围大于等于父类方法的修饰符范围。
重载方法名相同,参数列表不同,与返回值类型及修饰符无关。
3)作用不同
重载主要是为了提供一种同名方法不同参数的能力(可以让一个类用于多个同名的方法)
重写主要是为了结合多态使用,提高程序扩展性和可维护性。
方法重载不能改变返回值类型
this关键字和super关键字分别代表什么?以及他们各自的使用场景和作用。
this关键字:代表当前对象的引用,谁来调用我,我就代表谁
super关键字:代表当前对象父类的引用
this关键字作用:
1,使用this调用本类中的属性。
2,使用this调用构造方法。
3,表示当前对象
super关键字作用
1,在子类中调用父类的属性和方法
2,在子类中调用父类的构造方法。
10:继承案例练习
11:final关键字可以干什么?有什么特点?
12:final关键字的面试题?
A:修饰局部变量
B:初始化时机