码迷,mamicode.com
首页 > 编程语言 > 详细

关于Java方法重载

时间:2018-04-30 11:54:35      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:str   实现   extends   public   多态   cat   关于   参数   private   

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

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

例子:

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方法重载

标签:str   实现   extends   public   多态   cat   关于   参数   private   

原文地址:https://www.cnblogs.com/jojozzc/p/8973056.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!