一、面向对象的三大特征。
- 封***r> 对同一类事物的特征和功能包装在一起,只对外暴露接口,即信息的隐藏。
封装的好处:1、实现专业的分工;2、减少代码的耦合;3、可以自由修改类的内部结构。 - 继承
从已有的类中派生新的类,新的类可以吸收已有类的属性和行为并扩展新的能力,Java中的类不支持多继承,接口可以,一个接口可以继承多个其它接口。父类是子类的抽象化,子类是父类的具体化。
衍生的问题:接口和抽象类有哪些异同?
3. 多态
同一个行为具有多个不同表现形式或形态的能力。
二、静态与实例变量(方法)的区别。
- 语法区别:静态变量需要加static关键字,实例则不用;
- 隶属区别:静态变量属于某个对象的属性,而静态属于类;
- 运行区别:静态变量在JVM加载类时被创建,实例变量在实例化对象时创建。
三、类的加载顺序。
观察下列代码,说出运行结果。
package test;
//请写出程序的输出结果
public class ExecutionSequence {
public static void main(String[] args) {
new GeneralClass();
}
}
class ParentClass{
static {
System.out.println("1.我是父类静态块");
}
{
System.out.println("2.我是父类非静态块");
}
public ParentClass() {
System.out.println("3.我是父类构造函数");
}
}
class GeneralClass extends ParentClass{
static {
System.out.println("4.我是子类静态块");
}
{
System.out.println("5.我是子类非静态块");
}
public GeneralClass() {
System.out.println("6.我是子类构造函数");
}
}
输出结果:
类的加载顺序原则:1.静态优先;2.父类优先;3.非静态块优先于构造函数。
四、Java的异常体系
Error和Exception的区别与联系: