5.4.2方法重写
1.重写方法规则
如果子类继承了父类实例方法,那么子类有权利重写这个方法,并且这个方法名字、参数个数、参数类型和父类的方法完全相同。一旦重写了父类的方法,父类的该方法就被隐藏了,子类该重写的方法优先。
public class University{ //父类
void enterRule(double math,double english,double chinese){
double total = math+english+chinese;
if (total>200){
System.out.println(total+"分数进入大学录取分数线");
}
else{
System.out.println(total+"分数未进入大学录取分数线");
}
}
}
public class ImportantUniversity extends University{ //子类
void enterRule(double math,double english,double chinese){
double total = math+english+chinese;
if (total>240){
System.out.println(total+"分数进入重点大学录取分数线");
}
else{
System.out.println(total+"分数未达到重点大学录取分数线");
}
}
}
我们发现子类的enterRule方法和父类的同名而且参数一样。那么我们实现是什么样的情况呢?
public class Example{
public static void main(String arg[]){
double math = 62,english = 80,chinese = 98;
ImportantUniversity univer = new ImportantUniversity();
univer.enterRule(math,english,chinese);//调用重写方法
math = 98;
english = 89;
chinese = 90;
univer.enterRule(math,english,chinese);//调用重写方法
}
}
注意:
1.重写方法的话参数要完全相同,个数,类型。
2.重写方法,不允许降低方法的访问级别。
访问权限的级别由高到低顺序是:
public、protected、友好的、private