一。重写和重载的区别:
1.重载:JAVA中允许同一个文件名中出现多个方法名相同但是参数列表不同的同名方法
要求两个方法名必须相同,但是参数列表不能相同(个数不同,参数类型不同,参数类型出现顺序)
目的,让方法在接受不同参数实现不同功能
2.重写:发生在继承过程中,子类对父类方法实现细节进行重新定义
1)重写方法时,子类不能降低访问权限,可以扩大访问权限
2)有private或者final修饰方法都不能被重写
3)重写方法时,抛出异常可以是父类方法抛出异常全集、子集、空集
4)重写方法返回值,可以缩小返回值范围,但是不能增加返回值范围
二。throw和throws的区别:
throws:1)声名位置:方法名之后
public void test1() throws NullPointException {
}
2)作用:通知开发人员当前方法运行时,【有可能】抛出异常
3)携带数据:throws后面携带【异常类型】,一个throws后面可以携带多个异常类型
4)调用:当一个方法被throws修饰时,调用方法时必须考虑异常捕捉问题
throw:1)声名位置:方法执行体
public void test1(){
throw new RunTimeException();
}
2)作用:throw是一个命令,执行时抛出一个指定异常对象
3)携带数据:throw后面携带【异常对象】,一个throw一次只能携带一个异常对象
4)调用:当一个方法内部存在throw命令时,在调用是可以不考虑异常捕捉问题
三。接口和抽象类的区别:
1接口:1)是一种特殊的文件
2)作用:制定规则、降低耦合度
3)使用规则:接口中的属性,默认都是静态常量属性
接口中方法都是抽象,如果需要定义具体方法实现,此时方法需要使用default修饰
接口中方法的访问权限不能是private
接口与接口之间可以实现多继承但是接口之间不能互相实现
接口中不存在构造方法
2.抽象类:1)抽象类有abstract修饰
2)抽象类作用降低接口实现类一接口之间实现难度
3)使用规则:抽象类可以声明抽象方法,也可以生成具体方法
抽象类声明抽象方法必须由子类进行重写
抽象类实现接口时,不需要对接口方法进行重写
抽象类有构造方法,但是不能使用