關於Java方法重載
阿新 • • 發佈:2018-04-30
pre 運行 system div animal sys void test ima
今天在做項目的時候發現一個問題,如果有兩個方法是重載的,而且他們的參數一個是父類,一個是子類,那麽調用的時候會調用哪個函數呢?
做了個測試,發現調用的是子類。
例子:
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方法重載