【2021-07-09】什么是方法的重载?什么是方法的重写?

未匹配的标注

请移步至::octocat:每日一题 查看更多的题目 ~

答:

首先,重载和重写二者并无任何关联。

重载(overload)是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,然后在调用方法的时候,JVM会根据不同的参数样式来选择合适的方法执行。

示例程序:

public class Overload {
    public void info(String name, int age) {
        System.out.println("my name is "
                + name
                + ",I'm " + age + " years old");
    }

    public void info(String name, int age, String hobby) {
        System.out.println("my name is "
                + name
                + ",I'm " + age + " years old,"
                + "and My hobby is " + hobby);

    }

    public static void main(String[] args) {
        Overload overload = new Overload();
        overload.info("Kim",27);
        overload.info("Kim",27,"football");
    }
}

程序输出结果:

my name is Kim,I'm 27 years old.
my name is Kim,I'm 27 years old,and My hobby is football

重写(override)是应用在多态中,让子类表现出和父类不同特点的一种能力;子类重写的新方法将覆盖父类原有的方法

示例程序:

public class Polymorphic {
    public static void main(String[] args) {
        // 父类的引用指向子类的对象
        Animal cat = new Cat();
        cat.speak(); // 重写父类的speak方法 
    }
}
class Animal {
    public void speak(){
        System.out.println("我是一个动物");
    }
}
class Cat extends Animal{
    @Override
    public void speak() {
        System.out.println("我是一只猫");
    }
}

程序输出结果:

我是一只猫

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~