”复写“个概念与”重载“相似,它们均是Java”多肽“的技术之一,所谓”重载“,即是方法名称相同,但却可在不同的场合做不同的事。
当一个子类继承一个父类,而子类中的方法与父类中的方法的名称,参数个数,类型完全一致时,就称子类中的这个方法复写了父类中的方法。
同理,如果子类中重复定义了父类中已有的属性,则称此子类中的属性复写了父类中的属性。
例:
class java_ex21 {
public static void main(String[] args){
Student21 student21 = new Student21("xiaowang",25,"beijing");
System.out.println( student21.talk());
}
}
class Person21{
String name;
int age;
public String talk(){
return "name:" + this.name + "age :" + this.age;
}
}
class Student21 extends Person21{
String school;
public Student21(String name,int age,String school){
this.name = name;
this.age = age;
this.school = school;
}
public String talk(){
return "my school:" + this.school;
}
}
结果:
my school:beijing
解析:
子类复写了父类的talk方法,就是Student21 类中的talk()方法复写了Person21()类中的talk()方法。
实例化Student21 类,并同时调用子类构造方法为属性赋初值。
最终子类调用talk()方法,但此时调用的是子类中的talk()方法。