gpt4 book ai didi

java - 在这种情况下选角如何进行?

转载 作者:太空宇宙 更新时间:2023-11-04 13:31:19 25 4
gpt4 key购买 nike

假设我有两个类。

public class example1 {

private int a;
private String b;

public example1(int a, String b) {
this.a = a;
this.b = b;
}

public int getA() {
return a;
}
public String getB() {
return b;
}
}


public class example2 extends example1 {

public example2(int a, String b) {
super(a, b);
}

@Override
public int getA() {
return 10;
}
}

现在,如果我继续将 example2 转换为示例 1。

example1 a = (example1) new example2(5, "Hi");

a.getA() 将返回什么?

作为进一步的问题,如果 example2 看起来像这样..

public class example2 extends example1 {

public example2(int a, String b) {
super(a, b);
}
@Override
public int getA() {
return getAModified();
}
public int getAModified() {
return 10;
}
}

a.getA() 会返回什么?这里发生了什么,更重要的是为什么会发生?

最佳答案

What would a.getA() return?

将为您提供 example2 的结果,因为您使用 example2实例化

What happens here

example1 a = (example1) new example2(5, "Hi");

。您正在创建一个类型为 example1 且具有实现 example2 的实例。并转换为 example1

转换显示使用一种类型的对象来代替另一种类型。就是这样。它不会神奇地将实例化对象转换为强制转换。

关于java - 在这种情况下选角如何进行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32177784/

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