一、总结常见面试题
1、重写(Override)和重载(Overload)的区别
1.1发生的位置
重载:一个类中
重写:子父类中
1.2参数列表限制
重载:必须不同
重写:必须相同
1.3返回值类型
重载:与返回值类型无关
重写:返回值类型必须一致,从jdk1.5开始允许返回子类类型
1.4访问权限:
重载:与访问权限无关
重写:重写后(子)的方法的访问权限不能小于被重写(父)方法的权限
1.5异常处理:
重载:跟异常没有关系
重写:异常范围可以小,但是不能抛出新的异常
2、接口与抽象类的区别
2.1抽象类要被子类继承,接口要被类实现。
2.2接口只能声明抽象方法,抽象类中可以声明抽象方法,也可以写非抽象方法。
2.3接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。
2.4抽象类使用继承来使用,无法多继承。接口使用实现来使用,可以多实现
2.5抽象类中可以包含static方法,但是接口中不允许(静态方法不能被子类重写,因此接口中不能声明静态方法)
2.6接口不能有构造方法,但是抽象类可以有
三、equals()和 == 的区别
==:基本数据类型,比较的是数值的大小
引用数据类型,比较的是引用的地址
equals:默认比较两个对象的地址,若想要比较两个对象的内容时,需要重写这个方法