【发布时间】:2013-03-06 03:26:36
【问题描述】:
class root { public void say() { System.out.print("hello\n"); }}
class A extends root { @Override public void say() { System.out.print("world A\n"); }}
class B extends root { @Override public void say() { System.out.print("world B\n"); }}
//abstract class C extends <T> { public void go() { say(); say(); }}
class C <T extends root> { public void go() { say(); say(); }}
public class Template { public static void main(String[] args) {
C c = new C<A>(); c.say();
D d = new C<B>(); d.say();
}}
我需要扩展 A 和 B 的 C 类。(在现实生活中,它们将是水平(A)和垂直(B)滚动视图)。但这不会编译。我浏览了几十个你可以在网上找到的例子,但是这两个例子都不是可编译的程序,它们只会让我越来越困惑。请帮忙!
【问题讨论】:
-
我意识到这很难解释我想要在这里实现的目标。但这是我最初的问题,用户 moxn 建议使用这样的泛型。但我显然弄错了(或没有弄错)。 stackoverflow.com/questions/15222285/…
-
在继续这个项目之前,我强烈建议您通读Oracle Tutorial on Java Generics。这是一本快速阅读的书,也是您了解泛型如何工作以及如何在代码中使用它们的不错起点。
-
另外,Java(与 C++ 不同)不支持一个类的多个父级。你得到 1 且只有 1 个。