【发布时间】:2017-05-27 07:57:35
【问题描述】:
我在锻炼方面有些挣扎。我想在方法addQuestion 中保存question1 和question2。但我不知道如何访问f 并将其添加到可访问的内容中。在我的教科书中,他们告诉我们应该使用多态性来做到这一点。当我启动调试器时,我看到当q.addQuestion 被调用时,有一个属性f 包含我需要的字段。但是我怎样才能保存它们以备后用呢?我的第一个想法是我可以用 ArrayList 做到这一点,但我不能使用任何 Imports(这是教科书中的规则)。
可能我没有正确理解多态性。
public class something{
public static void main(String[] args) {
Quiz q = new Quiz(2);
q.addQuestion(new question1("SomeText",5,157,5));
q.addQuestion(new question2("SomeText",5,157,5,123));
...
}
}
public class Quiz {
int myNumQuestions;
Quiz[] quizQuestion;
Quiz(int numQuestions){
this.myNumQuestions = numQuestions;
quizQuestion = new Quiz[myNumQuestions];
}
public boolean addQuestion(Interface f){
quizQuestion = new f(); //that does not work but how can I access the field from f?
}
问候。
编辑:
我稍微更改了我的公共课程Quiz,现在我可以分配f
MyInterfaceName[] = quizQuestion;
Quiz(int numQuestions){
this.myNumQuestions = numQuestions;
quizQuestion = new Quiz[myNumQuestions];
}
public boolean addQuestion(Interface f){
quizQuestion[mycounter++] = f;
}
【问题讨论】:
-
1) “接口 f” - 这应该是什么? 2)您添加了哪个原始骨架程序和哪个位?类 Quiz 看起来嵌套在 Array Quiz 中,这对我来说没有意义。所以简单来说,一个测验有很多问题,但问题不应该是更多的测验......?问题课在哪里?
-
在您附加的代码中 - 您的代码和给出的代码是什么?
-
显然不是最好的名字,Interface应该是“interface”类的名字,我有2个“question”类(question1和question2)->1个AbstractQuestion,接口由AbstractQuestion实现. public boolean addQuestion(Interface f) 在书中定义。给定类 somethign 和方法签名,如“boolean addQuestion(Interface f)”
标签: java oop polymorphism