什么是重载?
重载的是一个方法,即在同一个类里面,方法名字必须相同,参数必须不同(可以是参数类型不同,也可以是参数个数不同),返回类型可以相同也可以不同。
重载用的最多的地方就是构造器的重载。
重载的规则
1.重载的这个方法必须参数列表不一样;
2.重载的这个方法名必须一样;
3.重载的这个方法可以改变返回类型;
4.重载的这个方法可以改变访问修饰符;
5.重载的这个方法的检查异常可以更广也可以声明为新的异常;
6.可以在同一个类中被重载或者被子类重载;
重载的事例
public class overload{
public void cat(){
System.out.println("cat likes eat fish!");
}
public int cat(int a){
System.out.println("cat likes eat mouse!");
return 1;
}
}
什么是重写?
重写是子类对父类的方法重写编写,返回值和参数列表都不能变,也就是外壳不变,里面的核心变。
重写的规则
1.父类的成员方法只能被它的子类重写。
2.参数列表必须完全与被重写方法的参数列表相同。
3.返回类型可以与被重写方法的返回类型不同,但是必须是父类返回值的派生类。
4.访问权限不能比父类中被重写的方法的访问权限更低。
5.声明为final、static的方法不能被重写。
6.子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。
7.子类和父类不在同一包中,那么子类可以只能够重写父类声明为public和protected的非final方法。
8.构造方法不能被重写。
重写事例
class Animal{
public void move(){
System.out.println("动物可以移动");
}
}
class Dog extends Animal{
public void move(){
System.out.println("狗可以跑和走");
}
}