Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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 接口和继承。(错误说明这些方法不是抽象的。如何更正?)_Java_Inheritance_Methods_Interface_Extends - Fatal编程技术网

Java 接口和继承。(错误说明这些方法不是抽象的。如何更正?)

Java 接口和继承。(错误说明这些方法不是抽象的。如何更正?),java,inheritance,methods,interface,extends,Java,Inheritance,Methods,Interface,Extends,编写一个程序来创建一个接口,您必须在其中声明一个变量intx=20,并创建一个抽象类。在该类中再次声明变量intx=10。创建名为test的新类,该类继承抽象类和接口。在该类中创建一个方法print并打印x的所有值 我不确定我是否完全理解这个问题,但我们来看看: 首先,您要声明一个接口A,其中包含一个默认值为20x的变量x interface A { int x = 20; } 然后是一个抽象类C,它实现A,并重写x的值以将其设置为10 abstract class C impleme

编写一个程序来创建一个接口,您必须在其中声明一个变量
intx=20
,并创建一个抽象类。在该类中再次声明变量
intx=10
。创建名为
test
的新类,该类继承抽象类和接口。在该类中创建一个方法print并打印x的所有值


我不确定我是否完全理解这个问题,但我们来看看:

首先,您要声明一个接口
A
,其中包含一个默认值为
20
x的变量
x

interface A {
    int x = 20;
}
然后是一个抽象类
C
,它实现
A
,并重写
x
的值以将其设置为
10

abstract class C implements A {
    int x = 10;
}
那么这在您的需求中不是很清楚,但是我认为显示您想要显示的内容的最佳方式是有两个类,一个实现
A
,一个扩展
C
。它们都有一个
print()
方法,显示它们的
x
值。让我们分别称它们为
TestA
TestC

class TestA implements A {

    void print() {
        System.out.println(x);
    }

}
现在,您可以拥有一个类
Test
,该类实例化
TestA
TestC
并调用它们的
print()
方法

class Test {
    public static void main(String[] args) {
        new TestA().print();
        new TestC().print();
    }
}
因此,现在当您运行
测试时,它会输出:

20
10

这意味着在实现
a
的类中,
x
的值默认为
20
(如
TestA
)。但是您可以覆盖该值并将其更改为您想要的任何内容(如
TestC

删除
void def()的末尾为什么有方法
abc
def
?它们似乎不是练习要求的一部分,只是使问题复杂化。我认为
def()
方法可能是一种抽象方法。在这两种情况下,OP的问题在于它们没有声明类级别
x
,而是声明一个局部变量,因此无法打印。我想说,练习的原始说明非常不清楚。@realpoint“是的,是真的”,将重写我的答案
class Test {
    public static void main(String[] args) {
        new TestA().print();
        new TestC().print();
    }
}
20
10