java - 接口和继承。(错误说明方法不是抽象的。我该如何纠正?)
问题描述
编写一个程序来创建一个接口,您必须在其中声明一个变量
int x= 20
并创建一个抽象类。在该类中再次声明变量int x=10
。创建一个名为test
继承抽象类和接口的新类。在该类中创建一个方法 print 并打印 x 的所有值。
interface A
{
int x = 20;
void abc();
}
abstract class C implements A
{
void def();
{
int x = 10;
}
}
class test extends C
{
static void print()
{
test obj = new test();
obj.abc();
System.out.println(x);
test obj1 = new test();
obj.def();
System.out.println(x);
}
public static void main(String arg[])
}
解决方案
我不确定我是否完全理解这个问题,但我们开始吧:
首先,您要声明一个带有默认值为A
的变量的接口x
20
interface A {
int x = 20;
}
然后是一个抽象类C
,它实现A
并覆盖了将x
其设置为的值10
abstract class C implements A {
int x = 10;
}
那么这在您的要求中并不是很清楚,但我认为展示您想要展示的内容的最佳方式是拥有 2 个类,一个实现类,A
一个扩展类C
。两者都有一个print()
显示其值的方法x
。让我们分别称它们TestA
为TestC
class TestA implements A {
void print() {
System.out.println(x);
}
}
class TestC extends C {
void print() {
System.out.println(x);
}
}
现在,您可以拥有一个Test
实例化 aTestA
和 aTestC
并调用它们的print()
方法的类。
class Test {
public static void main(String[] args) {
new TestA().print();
new TestC().print();
}
}
所以现在当你运行时Test
,它会输出:
20
10
所以这意味着在实现 的类中,默认情况下A
的值x
是20
(如TestA
)。但是您可以覆盖该值并将其更改为您想要的任何值(如TestC
)。
推荐阅读
- swift - 如何映射 EventLoopFuture 数组
到 EventLoopFuture 数组 在蒸汽中 - java - 是否可以创建“System.out.println”对象?
- mysql - 如何向 SQL 添加索引:“where condition1 and (condition2 or condition3)”?
- android - mtscra(刷卡读卡库)库回调不调用
- c++ - 在 C++ 中为 3D 数组分配连续内存
- spring - 没有找到适合 jpa 中已声明的 {mysql.url} 驱动程序的驱动程序
- python - 如果有空格而不是空格,如何使用正则表达式
- assembly - 我正在制作一个需要除以 10 的程序,但它会引发浮点错误
- regression - 您如何解释两个变量分布中的相关性?
- php - PHP:simplexml_load_file 从使用 UTF-8 编码的 XML 文件中获取奇怪的字符