想做游戏的小白 2022-12-29 16:12 采纳率: 80%
浏览 5

【java】怎么让被强转为父类的对象保持原有的属性。

编程语言:java JDK 1.8
实例代码:

public class Dome {
    public static void main(String[] args) {
        B b = new B();
        System.out.println(((A)b).a);
    }
}
class A {
    public int a = 5;
}
class B extends A {
    public int a = 10;
}

此代码的输出结果为5不为10。
所以我要问的是:怎么让对象强转后,属性保持不变(也就是让这个程序输出10)。

  • 写回答

1条回答 默认 最新

  • ShowMeAI 2022-12-29 16:32
    关注

    可以在子类B中添加一个方法,如下所示:

    class B extends A {
        public int a = 10;
        
        public int getA() {
            return a;
        }
    }
    

    然后在main方法中调用该方法:

    public class Dome {
        public static void main(String[] args) {
            B b = new B();
            System.out.println(b.getA());
        }
    }
    

    这样就可以输出10了。

    注意:如果要在父类中访问子类的属性或方法,需要在子类中提供对应的getter方法。否则会访问父类的属性或方法。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月29日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上