重写(Override): 子类继承父类的方法,并重新实现该方法。
方法重写使用注意事项:
1.方法重写时,必须存在继承关系
2.方法重写时,方法名和形式参数必须一致。
3.方法重写时 ,子类的权限修饰符需要大于或等于父类的权限修饰符。
4.方法重写时 ,子类的返回值类型必须小于或等于父类的返回值类型
5.方法重写时 , 子类的异常类型要小于等于父类的异常类型。
class Animal{
public void move(){
System.out.println("动物可以移动");
}
}
class Dog extends Animal{
public void move(){
System.out.println("狗可以跑和走");
}
}
public class TestDog{
public static void main(String args[]){
Animal a = new Animal(); // Animal 对象
Animal b = new Dog(); // Dog 对象
a.move();// 执行 Animal 类的方法
b.move();//执行 Dog 类的方法
}
}
重载(Overload): 方法名相同,但是参数必须有区别(参数不同可以使类型不同,顺序不同,个数不同)
同一个类中,方法名相同,参数列表不同的2个或多个方法构成方法的重载
参数列表不同指参数的类型,参数的个数,参数的顺序至少一项不同
方法的返回值类型,方法的修饰符可以不同。
public class Overloading {
public int test(){
System.out.println("test1");
return 1;
}
public void test(int a){
System.out.println("test2");
}
//以下两个参数类型顺序不同
public String test(int a,String s){
System.out.println("test3");
return "returntest3";
}
public String test(String s,int a){
System.out.println("test4");
return "returntest4";
}
public static void main(String[] args){
Overloading o = new Overloading();
System.out.println(o.test());
o.test(1);
System.out.println(o.test(1,"test3"));
System.out.println(o.test("test4",1));
}
}