gpt4 book ai didi

java - 如果匿名类数据成员没有在父类中声明,我们是否不能访问它们?

转载 作者:太空宇宙 更新时间:2023-11-04 10:04:06 26 4
gpt4 key购买 nike

class Parent{
String h;
Parent(String s){
h = s;
}
}
public class Child{
public static void main(String args[]){
Parent p = new Parent("fcghj"){ // anonymous class
private int y = 9;
};
System.out.println(p.h);
System.out.println(p.y); // error
}
}

错误显示:在父级中找不到符号 y

如果没有在父类中声明y,有没有办法在匿名类之外访问y?

我们是否只能为了在匿名类中重载、隐藏和重写而声明Parent类中存在的字段和方法?

最佳答案

匿名代码如果未分配,则保持匿名,也将其视为简单 block ,至于初始化 block ,您不希望在外部获取值:

public class Child { 

{ // initialize block
int y = 9;
}
public static void main(String args[]){
Parent p = new Parent("fcghj");
System.out.println(p.h);
System.out.println(y); // error
}

您可以更改/添加带有 int 参数的父构造函数以便稍后使用它

class Parent{
String h;
int y;
Parent(String s, int y){
h = s;
this.y = y;
}

关于java - 如果匿名类数据成员没有在父类中声明,我们是否不能访问它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53141504/

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