1)面向对象的特性有哪些?
答:封装、继承和多态。
2)Java 中覆盖(Override)和重载(Overload)是什么意思?
答:覆盖是指子类对父类方法的一种重写,只能比父类抛出更少的异常,访问权限不能比父类的小;被覆盖的方法不能是 private 的,否则只是在子类中重新定义了一个方法。
重载表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同。
问: 那么构成重载的条件有哪些?
答:参数类型不同、参数个数不同、参数顺序不同。
问: 函数的返回值不同可以构成重载吗?为什么?
答:不可以,因为 Java 中调用函数并不需要强制赋值。
3)抽象类和接口的区别有哪些?
-
抽象类中可以没有抽象方法;接口中的方法必须是抽象方法;
-
抽象类中可以有普通的成员变量;接口中的变量必须是 static final 类型的,必须被初始化 , 接口中只有常量,没有变量。
-
抽象类只能单继承,接口可以继承多个父接口;
-
Java8 中接口中会有 default 方法,即方法可以被实现。