扩展Queesion“如何引用子类变量而不在父类中声明该变量?”
问题描述:
public class Test {
public static void main(final String[] args) {
B b = new B();
System.out.println(b);
}
}
interface MyInterface<T> {
int getX();
}
abstract class A implements MyInterface {
@Override
public String toString() {
return String.valueOf(getX());
}
}
class B extends A, implements MyInterface<C> {
private static final int X = 10;
@Override
public int getX() {
return X;
}
}
class C {
// This is concrete class some
}
我无法使用泛型增强此接口。 它在抽象类或实现类处抛出错误。 我该如何做到这一点?扩展Queesion“如何引用子类变量而不在父类中声明该变量?”
答
public class MyTest2 {
public static void main(final String[] args) {
B b = new B();
System.out.println(b);
}
}
interface MyInterface<T> {
int getX();
}
abstract class A<T> implements MyInterface {
@Override
public String toString() {
return String.valueOf(getX());
}
}
class B extends A<C> {
private static final int X = 10;
@Override
public int getX() {
return X;
}
}
class C {
// This is concrete class some
}
答
你的意思是这样吗?
public class Test {
public static void main(final String[] args) {
MyInterface b = new B();
System.out.println(b);
}
}
interface MyInterface<T> {
T getX();
}
abstract class A<T> implements MyInterface {
@Override
public String toString() {
return String.valueOf(getX());
}
}
class B extends A {
//private static final int X = 10;
private static final double X = 10;
//@Override
public Double getX() {
return X;
}
}
请问上面的代码编译,甚至?它真的不清楚问题是什么? –
为什么你的界面有一个类型参数'T',如果你永远不会使用它?重点是什么?我无法告诉你想要完成什么。 “使用泛型增强这个接口”告诉我什么都没有。 – ajb
我打算使用T.我没有显示细节来简化我的问题 –