我理解在同一个类中重载一个方法是比较简单的。参数列表、返回类型、访问修饰符等都可以更改,以便将其视为重载。
但是,对于继承,我不确定下面的示例是建议类B重载类a的saysomething()
方法,还是只在其类中创建一个与它完全无关的方法。
public class A {
public void saySomething() {}
}
class B extends A {
public void saySomething(String s) {} // Overloading class A's method?
}
这似乎是没有区别的区别。
Java的超限超载并没有什么“特别”之处。这只是意味着有另一个同名的方法具有不同的签名/采用不同的参数。它是否有相同的名字其实并不重要--这只是在某些情况下使开发人员更容易一些,有时也让您可以利用反射做一些聪明的事情。
同样,如果B.SaySomething(String)“重载”B.SaySomething()(它从A继承的)也没有关系。
Java代码: 我的问题是:类中的是否重载了超类中同名的? 我的朋友说他们不是因为他们不在一个班。
问题内容: 我正在Google App Engine中制作一个购物车应用。我有许多从基本处理程序派生的类: 这是否意味着每个后代类的方法都需要具有相同的参数?这很麻烦。实际上只有一个后代使用该参数。而当我添加新的参数时呢?我需要遍历每堂课吗? 问题答案: 重写的方法原则上不必彼此具有相同的参数,但是它们必须具有与调用它们相同的形式参数。因此,由于任何处理程序都可以通过调用它,是的,它们必须相同。就
问题内容: 我正在学习Java入门课程,我们才刚刚开始学习继承。我正在完成一项任务,要求我们创建一个具有名称和年龄的“宠物”超类。和三个子类,每个子类都有自己的独特特征(我选择了“狗”,“猫”和“鸟”)。构建完所有这些之后,我们将创建一个Main类来测试所有内容,这就是我遇到问题的地方。我试图在中调用这些独特特征的方法,但似乎只能找到超类中的方法。 这是主类: 这是我的超人 这是子类之一(它们看起
问题内容: 指这里 A是预编译的Java类(我也有源文件)B是我正在编写的Java类 B扩展了A。 如何实现逻辑,以便A可以调用B拥有的方法。 以下是条件: 我不想触摸A(尽管没有其他解决方案,但这只是最后一个选择)。 我不想使用反射。 如前所述,如果需要,我可以修改A。哪种方式可能是可行的解决方案? 问题答案: 类应该定义将要调用的方法(可能是抽象方法,根据Paul Haahr的出色指南,A应该
我在调用覆盖方法的子类方法时遇到了问题,所以我创建了一个小应用程序来测试它。当超类调用其子类覆盖的方法时,仍然调用超类的方法版本,而不是子类的版本,后者覆盖了超类的方法,应该是被调用的方法。 预期输出:
问题内容: 动物是狗的超类,狗有一种叫bark的方法 考虑以下: 会发生什么? the assignment isn’t allowed the call to bark is allowed and “woof” is printed at run time the call to bark is allowed but nothing is printed the call to bark c