1:代码块是什么?代码块的分类和各自特点?
在Java中,用{}括起来的被称为代码块。
分类:根据其位置和声明的不同,可以分为局部代码块、构造代码块、静态代码块、同步代码块。
(1) 局部代码块:在方法中出现;限定变量生命周期,及早释放、提高内存利用率。
(2) 构造代码块:在类中方法外出现;多个构造方法中相同的代码存放在一起,每次调用构造都执行,并且在构造方法前执行。
(3) 静态代码块:在类中方法外出现,static关键字修饰,用于给类进行初始化,在类加载的时候就执行,并且只执行一次。一般用于加载驱动。位于主方法类中的静态代码块,优先于主方法执行。
2:静态代码块,构造代码块,构造方法的执行流程?
优先级从高到低:静态代码块、构造代码块、构造方法。
3:继承概述
让类与类之间产生关系,子父类关系
4:继承的好处
(1)提高了代码的复用性(2提高了代码的维护性(3)让类与类之间产生关系,是多态的前提。
5:Java中继承的特点
Java只支持单继承,不支持多继承,但支持多重继承。
6:Java中继承的注意事项?以及我们什么时候使用继承?
(1) 子类只能继承父类所有非私有成员,(成员方法和成员变量)
(2) 子类不能继承父类的构造方法,但可以通过super关键字访问父类中的构造方法
(3) 不要为了部分功能去继承。
继承体现的是一种is a 的关系。如果有两个类A,B,只要符合A是B的一种,或者是B是A的一种,就可以考虑继承。
7:继承中的成员访问特点
A:成员变量
在子类方法中访问一个变量
B:成员方法
在测试类中通过子类对象去访问一个方法
8:继承中构造方法的执行流程?假如父类没有无参构造方法,子类应该怎么办?
子类中所有的构造方法默认都会访问访问父类中空参的构造方法。默认会有super();
9:面试题:
方法重写和方法重载的区别?方法重载能改变返回值类型吗?
Overload 重载 方法名称相同,参数的类型和个数不同,对权限没要求,发生在一个类中。
Override 重写 方法名称、参数类型、返回值类型全相同。被重写的方法不能拥有更严格的权限。发生在继承类中。
this关键字和super关键字分别代表什么?以及他们各自的使用场景和作用。
this:代表当前对象的引用,super代表当前对象父类的引用。
(1) 调用成员变量
this.成员变量 可以调用本类的成员变量,也可以调用父类的成员变量。
super.成员变量 调用父类的成员变量。
(2) 调用构造方法
this() 调用本类的构造方法
super()调用父类的构造方法
(3) 调用成员方法
this成员方法 调用本类的成员方法,也可以调用父类的方法
super.成员方法 调用父类的成员方法
10:继承案例练习
1:代码块是什么?代码块的分类和各自特点?
在Java中,用{}括起来的被称为代码块。
分类:根据其位置和声明的不同,可以分为局部代码块、构造代码块、静态代码块、同步代码块。
(1) 局部代码块:在方法中出现;限定变量生命周期,及早释放、提高内存利用率。
(2) 构造代码块:在类中方法外出现;多个构造方法中相同的代码存放在一起,每次调用构造都执行,并且在构造方法前执行。
(3) 静态代码块:在类中方法外出现,static关键字修饰,用于给类进行初始化,在类加载的时候就执行,并且只执行一次。一般用于加载驱动。位于主方法类中的静态代码块,优先于主方法执行。
2:静态代码块,构造代码块,构造方法的执行流程?
优先级从高到低:静态代码块、构造代码块、构造方法。
3:继承概述
让类与类之间产生关系,子父类关系
4:继承的好处
(1)提高了代码的复用性(2提高了代码的维护性(3)让类与类之间产生关系,是多态的前提。
5:Java中继承的特点
Java只支持单继承,不支持多继承,但支持多重继承。
6:Java中继承的注意事项?以及我们什么时候使用继承?
(1) 子类只能继承父类所有非私有成员,(成员方法和成员变量)
(2) 子类不能继承父类的构造方法,但可以通过super关键字访问父类中的构造方法
(3) 不要为了部分功能去继承。
继承体现的是一种is a 的关系。如果有两个类A,B,只要符合A是B的一种,或者是B是A的一种,就可以考虑继承。
7:继承中的成员访问特点
A:成员变量
在子类方法中访问一个变量
B:成员方法
在测试类中通过子类对象去访问一个方法
8:继承中构造方法的执行流程?假如父类没有无参构造方法,子类应该怎么办?
子类中所有的构造方法默认都会访问访问父类中空参的构造方法。默认会有super();
9:面试题:
方法重写和方法重载的区别?方法重载能改变返回值类型吗?
Overload 重载 方法名称相同,参数的类型和个数不同,对权限没要求,发生在一个类中。
Override 重写 方法名称、参数类型、返回值类型全相同。被重写的方法不能拥有更严格的权限。发生在继承类中。
this关键字和super关键字分别代表什么?以及他们各自的使用场景和作用。
this:代表当前对象的引用,super代表当前对象父类的引用。
(1) 调用成员变量
this.成员变量 可以调用本类的成员变量,也可以调用父类的成员变量。
super.成员变量 调用父类的成员变量。
(2) 调用构造方法
this() 调用本类的构造方法
super()调用父类的构造方法
(3) 调用成员方法
this成员方法 调用本类的成员方法,也可以调用父类的方法
super.成员方法 调用父类的成员方法
10:继承案例练习
1:代码块是什么?代码块的分类和各自特点?
在Java中,用{}括起来的被称为代码块。
分类:根据其位置和声明的不同,可以分为局部代码块、构造代码块、静态代码块、同步代码块。
(1) 局部代码块:在方法中出现;限定变量生命周期,及早释放、提高内存利用率。
(2) 构造代码块:在类中方法外出现;多个构造方法中相同的代码存放在一起,每次调用构造都执行,并且在构造方法前执行。
(3) 静态代码块:在类中方法外出现,static关键字修饰,用于给类进行初始化,在类加载的时候就执行,并且只执行一次。一般用于加载驱动。位于主方法类中的静态代码块,优先于主方法执行。
2:静态代码块,构造代码块,构造方法的执行流程?
优先级从高到低:静态代码块、构造代码块、构造方法。
3:继承概述
让类与类之间产生关系,子父类关系
4:继承的好处
(1)提高了代码的复用性(2提高了代码的维护性(3)让类与类之间产生关系,是多态的前提。
5:Java中继承的特点
Java只支持单继承,不支持多继承,但支持多重继承。
6:Java中继承的注意事项?以及我们什么时候使用继承?
(1) 子类只能继承父类所有非私有成员,(成员方法和成员变量)
(2) 子类不能继承父类的构造方法,但可以通过super关键字访问父类中的构造方法
(3) 不要为了部分功能去继承。
继承体现的是一种is a 的关系。如果有两个类A,B,只要符合A是B的一种,或者是B是A的一种,就可以考虑继承。
7:继承中的成员访问特点
A:成员变量
在子类方法中访问一个变量
B:成员方法
在测试类中通过子类对象去访问一个方法
8:继承中构造方法的执行流程?假如父类没有无参构造方法,子类应该怎么办?
子类中所有的构造方法默认都会访问访问父类中空参的构造方法。默认会有super();
9:面试题:
方法重写和方法重载的区别?方法重载能改变返回值类型吗?
Overload 重载 方法名称相同,参数的类型和个数不同,对权限没要求,发生在一个类中。
Override 重写 方法名称、参数类型、返回值类型全相同。被重写的方法不能拥有更严格的权限。发生在继承类中。
this关键字和super关键字分别代表什么?以及他们各自的使用场景和作用。
this:代表当前对象的引用,super代表当前对象父类的引用。
(1) 调用成员变量
this.成员变量 可以调用本类的成员变量,也可以调用父类的成员变量。
super.成员变量 调用父类的成员变量。
(2) 调用构造方法
this() 调用本类的构造方法
super()调用父类的构造方法
(3) 调用成员方法
this成员方法 调用本类的成员方法,也可以调用父类的方法
super.成员方法 调用父类的成员方法
10:继承案例练习
class Demo_Extends { public static void main(String[] args) { Cat c = new Cat(); c.color = "白"; c.leg = 4; System.out.println(c.color + "..." + c.leg); c.eat(); c.sleep(); } } class Animal { String color; int leg; String name; public void eat() { System.out.println("猫吃饭"); } public void sleep() { System.out.println("猫睡觉"); } } class Cat extends Animal { }
11:final关键字可以干什么?有什么特点?
完结器。可以用final关键字声明类、方法、属性。使用final声明的类不能有子类,使用final声明的方法不能被子类覆写,使用final修饰的量为常量,不可修改
12:final关键字的面试题?
A:修饰局部变量
基本类型,值不能被改变;引用类型,地址值不能改变,对象中属性可以改变。
B:初始化时机
显示初始化
在对象构造完毕前即可。