一、如何实现方法的覆盖和重写?
1、当子类继承父类时,可以从父类继承它的属性和方法
2、如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。通常要加上 @Override
注解
3、当对父类的方法进行覆盖时,子类中的方法必须和父类中对应的方法具有相同的方法名称、输入参数和返回值
4、子类中的覆盖方法不能使用比父类中被覆盖方法更严格的访问权限
二、编程实战
代码的详细解读,可以参考视频教程
父类:Person.java
/**
* User: 祁大聪
*/
public class Person {
public String name;
public Integer age;
private Integer money;
public void dance(){ //子类可以重写
System.out.println("我会跳舞");
}
public void sing(String song){ //子类可以重写
System.out.println("我会唱歌");
}
private void getMoney(){
System.out.println("取现金");
}
}
子类:Boy.java
/**
* User: 祁大聪
*/
public class Boy extends Person{
//当重写的时候,我们要加上这个注解,显示说明子类重写了
@Override
public void sing(String song) {
System.out.println("男孩子喜欢唱rap");
}
}
子类:Girl.java
/**
* User: 祁大聪
*/
public class Girl extends Person{
@Override
public void dance() {
System.out.println("女孩子喜欢跳民族舞");
}
public static void main(String[] args) {
Girl g = new Girl();
g.dance(); //打印:女孩子喜欢跳民族舞
Person p = new Girl();
p.dance(); //打印:女孩子喜欢跳民族舞
}
}