1.面向对象的基本特征
封装:将客观事物抽象成类,从而达到对数据的控制。(那些信息可开放给外部,那些信息只允许自己使用)
继承:子类可以使用父类所有的功能,并且可以在不改变父类的基础上进行功能扩展。
多态:多态的实现是通过重写来实现,当子类重写父类的方法后,父类指针根据不同子类赋给它的指针,动态调用子类的方法。
2.finally、final、finalize的区别
final是一种修饰符:修饰的变量值不可变,修饰的方法不可被重写,修饰的类不可被继承。
finalize是一个方法,属于Object类。子类可以重写其方法实现资源清理,GC在回收对象之前会调用此方法。
finally用于释放一些系统资源,无论try块中是否发生异常,finally里的动作永远都会执行。
3.重载与重写的区别
a.重载是在编译期绑定的,重写是在运行期绑定的是动态的。
b.重写是发生在父子类之间的场景,重载则是发生本类当中。
c.重载与返回值无关,根据方法参数列表来判定(参数类型,参数个数,参数顺序)。
d.重写返回值、方法名、参数列表都与父类一致。
4.抽象类与接口的区别
a.抽象类可以有具体的实现方法,接口的方法不能有具体的实现。
b.接口的方法默认都是public类型,抽象类方法可以有private、protected。
c.接口属性必须是static并且是final。
d.抽象类可以有构造器,接口没有构造器。