Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 扩展的Queision on“;如何引用子类变量而不在父类中声明该变量; 公共类测试{ 公共静态void main(最终字符串[]args){ B=新的B(); 系统输出打印ln(b); } } 接口MyInterface{ int getX(); } 抽象类A实现MyInterface{ @凌驾 公共字符串toString(){ 返回字符串.valueOf(getX()); } } 类B扩展了A,实现了MyInterface{ 专用静态最终整数X=10; @凌驾 公共int getX(){ 返回X; } } C类{ //这是一节具体的课 }_Java_Oop_Inheritance_Polymorphism_Abstract - Fatal编程技术网

Java 扩展的Queision on“;如何引用子类变量而不在父类中声明该变量; 公共类测试{ 公共静态void main(最终字符串[]args){ B=新的B(); 系统输出打印ln(b); } } 接口MyInterface{ int getX(); } 抽象类A实现MyInterface{ @凌驾 公共字符串toString(){ 返回字符串.valueOf(getX()); } } 类B扩展了A,实现了MyInterface{ 专用静态最终整数X=10; @凌驾 公共int getX(){ 返回X; } } C类{ //这是一节具体的课 }

Java 扩展的Queision on“;如何引用子类变量而不在父类中声明该变量; 公共类测试{ 公共静态void main(最终字符串[]args){ B=新的B(); 系统输出打印ln(b); } } 接口MyInterface{ int getX(); } 抽象类A实现MyInterface{ @凌驾 公共字符串toString(){ 返回字符串.valueOf(getX()); } } 类B扩展了A,实现了MyInterface{ 专用静态最终整数X=10; @凌驾 公共int getX(){ 返回X; } } C类{ //这是一节具体的课 },java,oop,inheritance,polymorphism,abstract,Java,Oop,Inheritance,Polymorphism,Abstract,我无法使用泛型增强此接口。 它在抽象类或实现类中抛出错误。 我怎样才能做到这一点 你的意思是这样的吗 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 impl

我无法使用泛型增强此接口。 它在抽象类或实现类中抛出错误。
我怎样才能做到这一点

你的意思是这样的吗

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 
}
公共类测试{
公共静态void main(最终字符串[]args){
MyInterface b=新的b();
系统输出打印ln(b);
}
}
接口MyInterface{
T getX();
}
抽象类A实现MyInterface{
@凌驾
公共字符串toString(){
返回字符串.valueOf(getX());
}
}
B类扩展了A类{
//专用静态最终整数X=10;
专用静态最终双X=10;
//@凌驾
公共双getX(){
返回X;
}
}
公共类MyTest2{
公共静态void main(最终字符串[]args){
B=新的B();
系统输出打印ln(b);
}
}
接口MyInterface{
int getX();
}
抽象类A实现MyInterface{
@凌驾
公共字符串toString(){
返回字符串.valueOf(getX());
}
}
B类扩展了A类{
专用静态最终整数X=10;
@凌驾
公共int getX(){
返回X;
}
}
C类{
//这是一节具体的课
}

上面的代码甚至可以编译吗?问题到底出在哪里还不清楚?如果你不打算使用它,为什么你的界面会有一个类型参数
T
?重点是什么?我说不出你想完成什么。“用泛型增强这个接口”并没有告诉我什么。我将使用这个T。我并没有显示细节来简化我的问题,我得到了错误。接口MyInterface不能使用不同的参数实现多次:MyInterface和MyInterface。我的想法是我需要在A中使用/调用getX()的实现。这就是为什么我需要在AIt中实现MyInterface并没有简化这个问题,它使答案变得不可能。你的问题是,“我如何使之成为可能?”——我不知道你想让什么成为可能,因为你已经简化了你问题中的所有重要信息。
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;
    }
}
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
}