关于Java方法重载

Posted jojozzc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Java方法重载相关的知识,希望对你有一定的参考价值。

今天在做项目的时候发现一个问题,如果有两个方法是重载的,而且他们的参数一个是父类,一个是子类,那么调用的时候会调用哪个函数呢?

做了个测试,发现调用的是子类。

例子:

public class Animal {
    public Animal(){}    
}

他的一个子类:

public class Cat extends Animal {
    public Cat(){}
}

然后再Test类中实现两个方法:

class Test{
    public static void main(String[] args){
        Cat cat = new Cat();
        animalTest(cat);
    }
    private static void animalTest(Animal a){
        System.out.println("wawa");
    }
    private static void animalTest(Cat a){
        System.out.println("miao");
    }
}

运行结果:

miao

如果把cat声明为Animal的话,运行结果又变成了 wawa ,回去补一补Java多态,再回来更新。

以上是关于关于Java方法重载的主要内容,如果未能解决你的问题,请参考以下文章

Java基础之方法的调用重载以及简单的递归

Java简单实验--关于课后提到的java重载函数的简单分析

java基础3-重载+命令行传参+递归+数组+排序

关于JAVA重载的问题~!

关于重写和重载

Java 基础语法方法的使用