Java-尝试分配较弱的类权限
我正在学习Java(complete)初学者,并从我的代码中得到以下错误。我自己花了一些时间想弄明白,但运气不太好 错误:平板屏幕中的亮度(int)无法在电子设备中实现亮度(int) 虚空亮度(整型亮度){ 试图分配较弱的访问权限;是公共的Java-尝试分配较弱的类权限,java,compiler-errors,Java,Compiler Errors,我正在学习Java(complete)初学者,并从我的代码中得到以下错误。我自己花了一些时间想弄明白,但运气不太好 错误:平板屏幕中的亮度(int)无法在电子设备中实现亮度(int) 虚空亮度(整型亮度){ 试图分配较弱的访问权限;是公共的 public class NewTV { /** * @param args the command line arguments */ public static void main(String[] args) {
public class NewTV {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
FlatScreen fS = new FlatScreen();
fS.Power("On");
fS.Brightness(10);
}
}
interface electronics {
void Power(String newPower);
void Brightness(int newBrightness);
}
class FlatScreen implements electronics {
String Power;
int Brightness;
void Power (String newPower) {
Power = newPower;
System.out.println("Power: " + Power);
}
void Brightness (int newBrightness) {
Brightness = newBrightness;
System.out.println("Brightness: " + newBrightness);
}
}
使用
默认情况下,接口
中的方法是公共
。要覆盖公共
方法,您需要使用公共
修饰符
您需要了解
Java
中访问修饰符
的主席权。如果您想覆盖
某些方法,您需要具有更高主席权的修饰符。接口方法都是公共的,即使public
关键字不存在。实现接口的类必须实现其所有方法方法public,并且必须存在public
关键字。接口中的方法默认为public
。但是,类中的方法默认称为package private
。由于这比接口中可用的public
修饰符更具限制性,因此无法在实现方法时,必须显式使用public
access修饰符
这适用于扩展或实现基类的所有情况;所有重写的方法必须至少与要重写的方法一样可见。您可以自由地使方法更广泛地可见,但不能更少
关于为什么你不能这样做的一个例子,考虑这个代码:
electronics e = new FlatScreen();
e.Brightness(5); // the interface says I can call this, but the implementation says I can't!
electronics e = new FlatScreen();
e.Brightness(5); // the interface says I can call this, but the implementation says I can't!