(1)如果从父类继承的方法不能满足子类的需求,可以在子类中对父类的同名方法进行重写;
(2)方法重写(方法覆盖)必须满足如下要求:
1)重写方法和被重写方法必须具有相同的方法名
2)重写方法和被重写的方法必须具有相同的参数列表
3)重写方法的返回值类型必须和被重写方法的返回值类型相同或者是其子类
4)重写方法不能缩小被重写方法的访问权限(即访问权限词public不能更改)。
(3)方法重载和方法重写的区别:
1)方法重载发生的位置是同一个类中,方法重写是父类的方法在子类中重写的;
2)方法重载和方法重写的方法名相同;
3)方法重载的参数列表不相同,与返回值无关,与权限修饰符无关,而方法的重写参数列表相同返回值相同或是其子类,权限修饰符的范围不能小于父类的范围。
方法重写的代码:
父类方法:
public class Pet {
private String name;//宠物名
private int age;//宠物年龄
public Pet() {
}
public Pet(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void introduce(){
System.out.println("宠物名为:"+name+",宠物年龄:"+age+"岁。");
}
}
子类方法:
public class Dog extends Pet{
private String brand;//品种
public Dog() {
super();
}
public Dog(String name, int age, String brand) {
super(name, age);
this.brand = brand;
}
//在Dog类中的重写introduce的方法
public void introduce() {
System.out.println("狗的姓名是:"+super.getName()+",狗的年龄是:"+super.getAge()+"岁,狗的品种是:"+brand);
}
}
文章介绍了Java中方法重写(覆盖)的概念,包括重写的要求,如相同方法名、参数列表和返回值类型。同时,对比了重写与重载的区别,重载发生在同一类中,参数列表不同,而重写发生在子类对父类方法的修改。文中给出了Pet类及其子类Dog的一个实例,展示了如何在子类中重写父类的introduce方法。
2651

被折叠的 条评论
为什么被折叠?



