这个问题在这里已有答案:
我有一个超类动物和一堆继承类......狗,猫和猪等 .
我的问题是所有的狗猫和猪都有自己不同的参数 . 类“动物”是一个介绍参数对象 .
所以,狗可能已经开始..猪可能有getoink ..
我有一种方法可以将“猪”与猪类联系起来......当我得到(“猪”)时,这种方法可以将类型的动物与猪类联系起来 . 与其他人一样机智..
问题是,如果我做动物动物=得到(“猪”),然后尝试使用猪的方法与动物..即 . animal.oink(),我得到“这种类型动物的方法不合适”,因为oink不是动物,而是猪 .
我能想到解决这个问题的唯一方法就是在超类中加入oink,woof,meow,neigh和20种其他方法..这将是愚蠢的,因为狗只需要纬线,而不是哼,喵,嘶,唧唧...... .
我很抱歉这个令人费解的例子......这是我能想到解释的唯一方法..我知道你不能用Java来贬低 . 任何解决方案?
编辑:
这只是一个简单的例子..它不仅仅是一个说话功能 . 例如,一只狗有一个“梳子”功能,猪没有...我可以在超类中有一个通用的dothings()方法,并在子类中有一堆方法多次覆盖相同的dothings方法?