gpt4 book ai didi

Java 抽象关键字和接口(interface)

转载 作者:行者123 更新时间:2023-11-29 03:34:21 26 4
gpt4 key购买 nike

代码片段如下:

    interface Demo {   
void incrementCount();
int getCount();
}

class ChildDemo implements Demo {
public int count = 10;

private void incrementCount() {
count++;
}

public int getCount(){
return count;
}

public static void main(String[] args){
int res;
Demo ob= new ChildDemo ();
res = ob.getCount();
System.out.println(res);
}
}

而且,我得到的输出如下:

    Compilation Error:incrementCount() in ChildDemo cannot implement incrementCount() in Demo; attempting to assign weaker access privileges to the method.

我想澄清一些事情:
1.为什么会出错?什么试图分配较弱的访问权限?
2.将其更改为 private - incrementCount() 方法是否仍可以执行其计算?
3.应该进行哪些更改才能获得输出

10


4.应该进行哪些更改才能获得如下输出:

11

提前致谢。

最佳答案

默认情况下,接口(interface)中声明的所有方法都是公共(public)和抽象的。因此您需要在实现类中定义这些方法,或者您必须将类声明为抽象的。>

你必须 understand the rules for overriding methods 来消除这个错误。其中一条规则说重写的方法不能有较弱的访问说明符。因此,您不能在重写方法中将公共(public)方法设为私有(private)或 protected 。将您的子类覆盖方法公开,您的代码应该可以正常工作。

关于Java 抽象关键字和接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16331231/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com