package?com.duotai;
public?class?cat?implements?Animals{
public?void?eat(){
System.out.println("吃魚");
}
public?void?catchMouse()??
????{??
????????System.out.println("抓老鼠");??
????}??
}
public??interface?Animals?{
???????public??void?eat();
}
public?void?animalTest(String?className)?throws?ClassNotFoundException,?IllegalAccessException,?InstantiationException?{
????//利用反射獲得類的對(duì)象
????Class?animalClass?=?Class.forName(className);
????Animals?animal?=?(Animals)?animalClass.newInstance();
????animal.eat();
}
public?class?demo?{
public?static?void?main(String[]?args)?{
demo?a?=new?demo();
try?{
a.animalTest("cat");
}?catch?(ClassNotFoundException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}?catch?(IllegalAccessException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}?catch?(InstantiationException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
????????}
} 對(duì)于多態(tài)的定義以及使用方法我都可以理解,但是我最不理解的就是多態(tài)到底具有什么用處,我查了網(wǎng)上大部分都是舉例父類animal,,,子類dog,cat ?。。。。animal a=new dog();然后調(diào)用方法a.方法,,,,,,,但是我不理解的就是我直接dog a = new dog();調(diào)用方法a.方法不就可以了,多態(tài)的優(yōu)點(diǎn)在哪里呢?在代碼方面我也并沒有看到有優(yōu)化的作用啊。并且與繼承相比較,多態(tài)好像只多了一個(gè)重載的一個(gè)作用?,希望各位指導(dǎo)一下,十分感謝!!
對(duì)于多態(tài)的理解問題?
堅(jiān)持努力的少年
2016-10-16 01:47:04