猿问

对于多态的理解问题?

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.方法不就可以了,多态的优点在哪里呢?在代码方面我也并没有看到有优化的作用啊。并且与继承相比较,多态好像只多了一个重载的一个作用?,希望各位指导一下,十分感谢!!

坚持努力的少年
浏览 1204回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答