方法重写/覆盖(override)
方法覆盖(重写)就是子类有一个方法,和父类的某个方法的名称、返回类型、参数一样那么我们就说子类的这个方法覆盖了父类的那个方法。
使用细节
-
子类的方法的参数,方法名称,要和父类方法的参数,方法名称完全一样。
-
子类方法的返回类型和父类方法返回类型一样,或者是父类返回类型的子类比如父类返回类型是Object子类方法返回类型是String
-
子类方法不能缩小父类方法的访问权限
方法重载和重写的比较
练习
//test类
package override;
public class test {
public static void main(String[] args) {
person person = new person("小明",18);
student student = new student("小花",18,"override",60);
System.out.println(person.say());
System.out.println(student.say());
}
}
//person类
package override;
public class person {
private String name;
private int age;
public person(String name, int age) {
this.name = name;
this.age = age;
}
public String say(){
return "name="+name+" age="+age;
}
}
//student类
package override;
public class student extends person {
private String id;
private double score;
public student(String name, int age, String id, double score) {
super(name, age);
this.id = id;
this.score = score;
}
@Override
public String say() {
return super.say()+" id="+id+" score="+score;
}
}