重载和重写
引言
重载和重写一直是面试必问的题目之一,因此自己来总结一下,巩固学习。
重写
方法的组成
public void hello(String word){
System.out.println("sayHello");
}
这是一个最基本的方法结构,从左往右依次是:
- 访问权限修饰符
- 返回值
- 方法名
- 参数列表
想必大家都很清楚,言归正传,对于重写,简单来说就是子类继承父类,需要重新编写父类方法的内部逻辑,其中需要牢记的几点有:
- 方法名、参数列表必须相同;
- 返回值类型应比父类更小或相同;
- 访问权限修饰符必须大于等于父类的访问修饰符;
- 抛出异常的范围小于等于父类;
- 父类访问修饰符被 private/final/static修饰,则子类无法重写;
- 构造方法无法被重写
重载
我们经常会对于同一个类有不同的构造方法,如:
String s = new String();
String s = new String("abc");
这种特征就是重载。如果有多个方法有相同的方法名、不同的参数列表,编译器需要选择执行哪个方法,因此这里就通过用各个方法给出的参数类型和实际传入的参数匹配来挑选对应的方法,注意点:
- 相同的方法名;
- 不同的参数列表(参数顺序可以不同);
- 返回值可以相同可以不同;