父类
[code=java]public class Animal {
private String name;
public Animal(String name){
this.name=name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void printInfo(Animal animal){//方法的参数列表是Animal类
System.out.println("My Name is:"+animal.getName());
}
}[/code]
子类
[code=java]public class Cat extends Animal{
private String name;
public Cat(String name) {
super(name);
this.name=name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//重写Animal类中的printInfo()方法 但是参数列表不一样 ,这是方法的重写吗?
public void printInfo(Cat cat) {
System.out.println("My Name is"+cat.name);
}
}
[/code]
子类重写的printInfo()方法参数列表不一样,这是不是方法的重写呢?
重写:子类对父类中已有的方法在子类中重新编写,除了方法的内容可以改变,其余的返回值类型,方法名自己参数列表都不可以改变。需要注意的是参数列表还必须是原来的参数列表,即使是原来参数的子类也是不可以的。
重载:同一个类中,有两或者两个以上方法,方法名相同,参数列表不同,跟返回值类型无关。
希望可以帮到你。
参数不同不构成重写,但是和基类的那个同名函数构成重载关系。
重写:同名同参
重载:同名不同参