《JAVA啃骨头》之 JAVA 章节
方法的重载和重写、接口和抽象类的区别
一、重载:
JAVA中允许同一个类未文件中出现多个方法名相同,但是参数列表不同的同名方法,这种现象被称作是重载,要求两个方法名必须相同,但是参数列表不能相同(个数不同算不同、类型不同算不同、顺序不同算不同)
二、重写:
发生在继承的过程中,子类对于父类方法实现细节进行重新定义。
1、重写方法时,字类不能降低访问权限,可以扩大访问权限。
2、由private和final修饰的方法都不能被重写。
3、重写方法时,抛出异常可以是父类方法抛出异常的全集、子集、空集。
4、方法重写的返回值,可以缩小返回值返回类型范围,但是不能增加返回值返回类型范围。
三、接口:
1、接口是一种特殊的文件。
2、作用:制定规则,降低耦合度。
3、使用规则:
接口中属性默认都是静态常量属性;
接口中方法都是抽象的,如果需要定义具体方法实现,此时方法需要使用default修饰;
接口中方法访问权限不能是private;
接口与接口之间可以实现多继承,但是接口不能相互实现;
接口中不存在构造方法;
四、抽象类:
1、抽象类由abstract修饰;
2、抽象类作用:降低接口实现类与接口实现的难度;
3、使用规则:
抽象类可以声明抽象方法,也可以生成具体的方法;
抽象类声明抽象方法必须由子类进行重写
抽象类实现接口时,不需要对接口方法进行重写;
抽象类有构造方法,但是不能使用;