Java OOP之方法重写与方法重载

方法重写

概念

在Java中,子类继承父类中的方法,但有时父类方法并不能满足子类要求,这就需要子类对继承的方法进行从新定义,这就是方法重写,方法重写又称方法覆盖。

作用

通过方法重写,实现子类的要求。

注意事项

  1. 方法重写时,方法的返回值类型 方法名 参数列表都要与父类一样。(同名,同参,同返回)

  2. 子类方法覆盖父类方法,必须要保证权限大于等于父类权限。

  3. 方法重写时,子类不能缩小父类抛出的异常

示例:以宠物、宠物狗、宠物猫为例。
class Pet {//宠物
    public void sound(){
        System.out.println("宠物叫");
    }
}
class Dog extends Pet {//狗

    //方法重写
    @Override
    public void sound() {
        System.out.println("汪汪汪");
    }
}
class Cat extends Pet{//猫
    //方法重写
    @Override
    public void sound(){
        System.out.println("喵喵喵");
    }
}

public class PetShop{//宠物店
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.sound();//调用狗的sound()
        Cat cat = new Cat();
        cat.sound();//调用猫的sound()
    }
}

解析:
创建宠物类,猫类、狗类继承宠物类,猫类、狗类重写宠物类的sound方法。
运行结果:
汪汪汪
喵喵喵

方法重载

概念

方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。

作用

通过方法重载实现方法的多种可能性。

注意事项

在同一个类中,方法重载时,方法的方法名要与类名一样,每个方法的参数个数、类型、顺序不同。(同名,不同参,与返回无关)

示例:

public void play(){
      System.out.printf("我的名字是%s,我的成绩是%d,我的学号是%s",this.name,this.score,this.no);
}
public int play(int time){
        return 0;
}
s1.play(1);//调用的是含参的方法
s2.play();//调用的是无参的方法

区别

  1. 方法重载:
    1. 在同一个类中(包括从父类继承的) 方法 同名 不同参 与返回值无关
  2. 方法重写:
    1. 方法重写存在于继承关系中
    2. 父子类之间的方法 同名,同参,同返回
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容