gpt4 book ai didi

java - 将继承类的对象分配给父类(super class)的引用

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:46:46 24 4
gpt4 key购买 nike

给定以下代码:

public class A {
int at=2;

public int m(int i){return at+i;}
}

class B extends A {
int at=3;

public int m(int i){return at+5*i;}
}

public class Main {

public static void main(String args[]){
A x = new B();

System.out.println("Output "+x.m(x.at));
}
}

输出为13。

它是如何工作的?我知道它从 B 获取方法,但是参数呢?

最佳答案

看表达式:x.m(x.at) .自 x被声明为 A , x.at将引用at A 中的字段.

但是,当涉及到方法时,它会变得更加复杂。虽然x声明为 A , x实际上是 B 类型, 所以方法 m将从 x 调用的实际类(class),B .

也许 this可以帮忙。

关于java - 将继承类的对象分配给父类(super class)的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23981578/

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