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?{
????//利用反射獲得類的對象
????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();
}
????????}
} 對于多態的定義以及使用方法我都可以理解,但是我最不理解的就是多態到底具有什么用處,我查了網上大部分都是舉例父類animal,,,子類dog,cat ?。。。。animal a=new dog();然后調用方法a.方法,,,,,,,但是我不理解的就是我直接dog a = new dog();調用方法a.方法不就可以了,多態的優點在哪里呢?在代碼方面我也并沒有看到有優化的作用啊。并且與繼承相比較,多態好像只多了一個重載的一個作用?,希望各位指導一下,十分感謝?。?
添加回答
舉報
0/150
提交
取消