重载与覆盖的区别
重载和覆盖的相同点:重载的方法的方法名是相同的,覆盖的方法与被覆盖的方法的方法名是相同的。
区别:
重载的方法之间的参数类型可以不同,参数个数可以不同,以及参数的顺序可以不同。而覆盖的方法之间的参数类型,参数个数,以及返回值类型必须相同。
静态方法(私有方法也)不能被覆盖(重写),但是静态方法可以被重载。
public class Person {
private int age;
private Stringname;
public Person(){
}
public Person(int age, String name){
this.age = age;
this.name = name;
}
public int getAge(){
return age;
}
public static int get(int x){
return x;
}
public static int get(int x,int y){//静态方法的重载
return x + y;
}
}
public class ZhangSan extends Person {
private Stringname;
private int age;
public ZhangSan() {
}
public ZhangSan(String name,int age) {
super();
this.name = name;
this.age = age;
}
public int getAge(){
return age;
}//覆盖父类的方法
public void sayHello(){
System.out.println("name : ztx");
}
}