我有一个
class Game {}
class Game1 extends Game{}
class Game2 extends Game1{
void method1(){};
}
但当我这么做的时候,
Game game = new Game2 (); //compiles fine and all is ok
game.method1(); //gives me error method1 is not defined for type Game
我该怎么解决这个问题?游戏是超级超级类...
如果需要对子类调用方法以将变量转换为超类,则需要将其转换回子类。另一方面,如果一个游戏对象需要知道一个游戏2对象上的方法,也许你应该将游戏声明为一个抽象类,其中包含一个游戏2和游戏1必须实现的抽象方法:
public abstract class Game {
public abstract void method1();
}
public class Game1 extends Game {
public void method1() {
// ...
}
}
public class Game2 extends Game {
public void method1() {
// ...
}
}
我是java初学者,我不理解这行代码是什么意思 平均值。为什么不能访问自己的方法。请详细解释如果类A正在实例化,那么为什么它的方法不可访问。
我在调用覆盖方法的子类方法时遇到了问题,所以我创建了一个小应用程序来测试它。当超类调用其子类覆盖的方法时,仍然调用超类的方法版本,而不是子类的版本,后者覆盖了超类的方法,应该是被调用的方法。 预期输出:
我有一个基类,它定义了类方法,用于返回用于构建服务url的各种信息。基类还定义了一个用于构建该url的实例方法。我希望基类有这个方法的默认实现,这样当我需要url不同时,我只需要在子类中重写它。我如何让这个基方法调用重写的类方法来使用子类中的类方法构建url?下面是我现在的代码,但它不起作用: 基类方法: op ationId、operationVersion和方法类型是在子类中实现的类方法,但是
Java代码: 我的问题是:类中的是否重载了超类中同名的? 我的朋友说他们不是因为他们不在一个班。
在java中,我们可以缩小返回类型和throws异常类型(甚至删除throws子句): 但是,参数类型呢(如果A采用< code>T,那么为什么B不采用< code >?超级T)如: 让我们考虑一下我认为完全符合逻辑的这段代码: 所以我要说的是,在使用的代码上下文中仍然有效。
我正在学习java入门课程,我们刚刚开始学习继承。我正在做一项任务,要求我们创建一个具有名称和年龄的“Pet”超类;和三个子类,每个都有自己独特的特征(我选择了“狗”、“猫”和“鸟”)。在我们构建了所有这些之后,我们将创建一个主类来测试一切,这就是我遇到问题的地方。我试图为这些独特的特性调用