public class superClassName(){
method(){
make object of subclass type used
}
然后我调用子类中的方法。
我希望有一个对象创建的基础上,子类已经被调用,如果这是有意义的?
使用反射可能提供最快的解决方案(this.getClass()
返回具体的子类):
void method(){
//use default, no-arg constructor
superClassName newObject = this.getClass().getConstructor().newInstance();
}
或者,父类可以声明强制子类提供供应商的抽象方法:
public abstract class superClassName(){
abstract Supplier<superClassName> getInstanceSupplier();
void method(){
superClassName newObject = this.getInstanceSupplier().get();
}
}
并简单地实现它:
public class SubClassName extends superClassName {
abstract Supplier<superClassName> getInstanceSupplier() {
return () -> new SubClassName();
}
}
假设我有一个抽象类Person。有另一个类学生扩展了Person。但是学生类有一个成员变量,比如String类型的学院,它在Person类中不存在。 我们知道我们可以从超类引用子类,例如, 人p=新学生(); 对象p会有成员学院吗?
我正在阅读这本Java SCJP的书,我偶然发现了以下内容: 但是我得到了这个错误: 那么,出什么问题了?
有没有方法用子类的静态成员类参数化超类? exampleSuperClass.java: 编译失败,错误为: 或者与: 成员不能解析为类型 如果用另一个包保护的顶级类来参数化ExampleSubClass,它工作得很好(也就是没有错误)。 这背后的驱动力是我有一个泛型超类和许多不同的和对。但是由于只被引用,最好是: 限制的访问,使其成为静态成员类和 通过不给自己的文件来减少文件数。 那么,在参数化
我正在学习java入门课程,我们刚刚开始学习继承。我正在做一项任务,要求我们创建一个具有名称和年龄的“Pet”超类;和三个子类,每个都有自己独特的特征(我选择了“狗”、“猫”和“鸟”)。在我们构建了所有这些之后,我们将创建一个主类来测试一切,这就是我遇到问题的地方。我试图为这些独特的特性调用
问题内容: 我正在学习Java入门课程,我们才刚刚开始学习继承。我正在完成一项任务,要求我们创建一个具有名称和年龄的“宠物”超类。和三个子类,每个子类都有自己的独特特征(我选择了“狗”,“猫”和“鸟”)。构建完所有这些之后,我们将创建一个Main类来测试所有内容,这就是我遇到问题的地方。我试图在中调用这些独特特征的方法,但似乎只能找到超类中的方法。 这是主类: 这是我的超人 这是子类之一(它们看起
问题内容: 我正在尝试创建一个将字段作为参数的构造函数,然后将其放入存储在超类中的字段中。这是我正在使用的代码 在超类中,我用 我有一个访问器方法 我收到一个错误“ 味道在超类中具有私有访问权 ”,但是我认为这无关紧要,因为我正在调用将其返回到字段的访问器方法? 问题答案: 您应该做什么: 在您的超类中添加一个构造函数: 在Crisps类中: 注释 对您的问题的一些评论: “在超类中,我已经用”