1:代码块是什么?代码块的分类和各自特点?
答:
(1)代码块是用{ }括起来的代码
(2)分类:
a:局部代码块
用于限定变量的声明周期,及早释放,提高内存利用率
b:构造代码块
把多个构造方法中相同的代码可以放在这里,每个构造方法执行前,首先执行构造代码块
c:静态代码块
对类的数据进行初始化,仅仅执行一次
(3)静态代码块,构造代码块,构造方法的执行顺序
静态代码块>构造代码块>构造方法
2:静态代码块,构造代码块,构造方法的执行流程?
答:
静态代码块在加载的时候就执行,并且只执行一次。
构造代码块每次调用构造都执行,在构造方法前执行。构造方法最后执行。
3:继承概述
答:
继承是把多个类中相同的成员变量提取出来定义到一个独立的类中。然后让这多个类和该独立的类产生一个关系,
这个类就具备了这些内容。
4:Java中如何表示继承呢?格式是什么?
答:
(1)用关键字extends表示
(2)格式 :class 子类名 extends 父类名 {}
5:继承的优点
答:
(1)优点
(1)提高了代码的复用性
(2)提高了代码的维护性
(3)让类与类产生了一个关系,是多态的前提
6:继承的缺点
答:
(1)让类的耦合性增强。这样某个类的改变,就会影响其他和该类相关的类
原则:低耦合,高内聚
耦合:类与类的关系
内聚:自己完成某件事情的能力
(2)打破了封装性
7:Java中继承的特点
答:
(1)java中只支持单继承
(2)java中可以以多层(重)继承 (继承体系)
8:Java中继承的注意事项?以及我们什么时候使用继承?
答:
(1)注意事项:
a:子类不能继承父类的私有成员
b:子类不能继承父类的构造方法,但是可以通过super去访问
c:不能为了部分继承而去继承
(2)什么时候使用继承
a:继承体现的是:is a的关系,当a是b的一种,或者b是a的一种时
b:采用假设法
9:继承中的成员访问特点
答:
a:成员变量
在子类方法中访问一个变量。格式:this.成员变量
b:成员方法
在测试类中通过子类对象去访问一个方法。格式:this.成员方法
10:继承中,假如父类没有无参构造方法,子类应该怎么办?
答:
用super( )解决 或者this( )解决
11:方法重写和方法重载的区别?方法重载能改变返回值类型吗?(面试题)
答:
方法重写(Overload):类与类之间的,在子类中出现和父类中一模一样的方法声明 的现象
方法重载(Override) :同一个类中,出现的方法名相同,参数列表不同的现象
方法的重载能改变返回值得类型,因为它和返回值类型无关
12:this关键字和super关键字分别代表什么?以及他们各自的使用场景和作用。(面试题)
答:
this:代表当前类的对象引用
super:代表父类存储空间的标识(可以理解为父类的引用,通过它访问父类)
场景:
成员变量:
this.成员变量
super.成员变量
构造方法:
this(…)
super(…)
成员方法:
this.成员方法
suer.成员方法