你能创建一个继承java内置类所有功能的接口吗?
我正在尝试做的事情:
我有很多扩展 Fragment 的类,在这些类中有一些属性(get、set)和一些函数。在制作了不同类的对象后,我将它们放在一个通用的片段列表中。
但是我想介绍多态性:1个接口类和所有其他类都实现了它,因此它们可以覆盖函数。
但问题是,如果我想使用多态性,我需要一个接口,并且接口应该是一个 Fragment,所以我仍然可以将这些 Fragment 放入一个列表中,那么我可以从 Fragment 类创建一个接口还是该接口可以继承从碎片?
在图像上你可以看到当前的情况
更新
这是一些代码来显示我想要实现的目标:
所以我有我的主要功能,它是一个 xmlSAXParser,当我遇到一个标签时,我创建了一个正确类的对象:
case template:
switch (typeObjecten.toType(atType)) {
case NOVALUE:
break;
case chapter:
chapter = new ChapterFragment();
typeObject = "chapter";
break;
case execute:
execute = new ExecuteFragment();
typeObject = "execute";
break;
case first:
first = new FirstFragment();
typeObject = "first";
break;
...
当我找到结束标记时,我将正确的对象添加到列表中:
case template:
switch (typeObjecten.toType(typeObject)) {
case NOVALUE:
break;
case chapter:
fragments.add(ownFrag);
break;
case execute:
fragments.add(execute);
break;
case first:
fragments.add(first);
break;
case navigation:
fragments.add(navigation);
break;
case story:
fragments.add(story);
break;
....
也有可能在每个类中背景都可能改变,现在我必须检查对象是哪个类来调用正确的函数:
case background:
if (typeObject.equalsIgnoreCase("navigation")) {
navigation.setBackgroundColor("#" + text);
} else if (typeObject.equalsIgnoreCase("chapter")) {
//chapter.setBackgroundColor("#" + text);
} else if (typeObject.equalsIgnoreCase("first")) {
ownFrag.setBackgroundColor("#" + text);
first.setBackgroundColor("#" + text);
} else if (typeObject.equalsIgnoreCase("execute")) {
execute.setBackgroundColor("#" + text);
} else if (typeObject.equalsIgnoreCase("story")) {
story.setBackgroundColor("#" + text);
} else if (typeObject.equalsIgnoreCase("intro")) {
intro.setBackgroundColor("#" + text);
} else if (typeObject.equalsIgnoreCase("mission")) {
mission.setBackgroundColor("#" + text);
} else if (typeObject.equalsIgnoreCase("question")) {
question.setBackgroundColor("#" + text);
} else if (typeObject.equalsIgnoreCase("info")) {
info.setBackgroundColor("#" + text);
}
break;
...
因此,如果我可以制作一个“全局”片段然后程序自己找出它必须从哪个类调用哪个函数(多态性?)