【发布时间】:2011-05-23 18:58:39
【问题描述】:
好的,所以我已经通过谷歌搜索寻找文档,但是我没有找到任何真正描述我想要回答的内容,所以我在这里问你们。
所以我得到了继承,以及它是如何工作的。我遇到的问题是有时我看到一个对象最初定义为一种类型,然后设置为不同的类型,我不明白到底发生了什么。这是一个例子:
假设我有一个动物类,以及扩展动物的猫和狗类。猫、动物和狗都有一个方法 speak(),猫打印“喵”,狗打印“woof”,动物“不会说话”。
好的,最后这是我的问题。如果 a 生成一只猫 (c) 然后运行 Animal a = c; 会发生什么?如果我运行 a.speak(); 会发生什么?调用哪种说话方法?当我这样改变类型时到底发生了什么?我会有任何真正的理由使用它吗?
就抽象方法而言,我的问题是拥有它们到底有什么意义?在我看到的示例中,它们已被放入超类中,并且它们下的类定义了确切的行为。将抽象方法放在超类中,是不是要求其下的所有类都实现?
感谢您的帮助!
【问题讨论】:
标签: java inheritance interface