重写与重载
2021-05-19 09:46:29
# 重写与重载
重写:
1.重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。
2.重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。
3.重写方法的修饰符要比被重写方法范围更广。
```java
class Animal{
//父类方法的修饰符范围下,抛出的异常要广
protected void move() throws Exception {
System.out.println("动物可以移动");
}
}
class Dog extends Animal{
//子类的修饰符要广,抛出的异常要小
public void move() throws IOException{
System.out.println("狗可以跑和走");
}
}
public class TestDog{
public static void main(String args[]) throws Exception{
Animal a = new Animal(); // Animal 对象
Animal b = new Dog(); // Dog 对象
a.move();// 执行 Animal 类的方法
b.move();//执行 Dog 类的方法
}
}
```
重载:
1.重载 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
```java
//常用于构造方法重载
class Animal{
private String name;
private int id;
public Animal(String name) {
this.name = name;
}
public Animal(int id) {
this.id = id;
}
public Animal(String name, int id) {
this.name = name;
this.id = id;
}
}
```