我有一个名为Player
的超级类,我有3个子类,分别是Young Hustler
,Student
和The Herbalist
。
在每个子类中,我都有私有参数金钱
,存储大小
和连接
。
我想在 Player
类中创建一个名为 sellWeed()
的方法,该方法从 stashSize
中删除 1 并将 10 添加到金钱
中,以便我可以在 main 方法中调用它们时将该方法应用于所有子类。但是如何将私有参数从子类获取到超类中呢?
我不能在超类中声明它们,因为每个子类都有自己的默认启动参数,这些参数应该在游戏期间进行。
这样的方法应该有效:
class Player {
protected int money;
protected int stashSize;
// and the connections parameter too...
public Player(int money, int stashSize) {
this.money = money;
this.stashSize = stashSize;
}
public void sellWeed() {
// work with money and stashSize here
}
}
class Student extends Player {
public Student() {
super(0, 10); // no money and stashSize 10 for student
}
}
想法是将私有参数移动到超类中。然后,您可以通过将值传递给超级构造函数(super())来初始化它们。
下面是解释我的情况的基本框架代码。 这是超级抽象类: 这是超级抽象类的一个子类:(注意,我删除了其他函数,比如构造函数和方法,以缩短文章的篇幅 我想在抽象类中使用这种公共无效支付(int金额)方法;然而,超级抽象类Person不会接受支付(付款),因为该方法不在范围内。如何使这个工作? 谢谢~
我有一个名为User的抽象类和一个扩展User的子类。User类包含一个方法:受保护的抽象空setId(String newId){}:它在User类中设置一个私有变量id。所以我的问题是,当我去创建setId()方法时,如果User类中的id是私有的,我如何引用它?据我所知,id变量不能被设置为受保护的。感谢任何能帮忙的人!
我有一个抽象超类和两个非抽象子类和。如何在超类方法中定义类型,如下所示 我允许在子类方法中编写具体类型(例如,或) 在上面的示例中,子类方法不会覆盖超类方法。
我正在学习java入门课程,我们刚刚开始学习继承。我正在做一项任务,要求我们创建一个具有名称和年龄的“Pet”超类;和三个子类,每个都有自己独特的特征(我选择了“狗”、“猫”和“鸟”)。在我们构建了所有这些之后,我们将创建一个主类来测试一切,这就是我遇到问题的地方。我试图为这些独特的特性调用
问题内容: 我对Java中的多态性有基本的疑问。我已经在一个名为AnimalTestDrive.java的文件中编写了以下代码。根据我的说法,以下代码应专门以粗体显示该行,但不幸的是,它不能。您能否解释为什么,我给出了以下错误: 问题答案: 让我们尝试以与编译器相同的方式查看此行: 首先,它需要弄清楚是什么意思。很好而且很容易-它是当前方法中的局部变量,因此它不需要花很多时间。 该变量的编译时类型
我有一个类(为简单起见称为子类),它扩展了SuperClass并实现了IClass。我知道您可以通过使用super.method()调用SuperClass的方法,但是是否可以从SubClass调用它从IClass实现的方法? 例子: 子类: IClass: 我想从超类调用子类'implementedMethod()(它从IClass获得) 我该怎么做呢?