gpt4 book ai didi

java - 访问父类方法和变量

转载 作者:行者123 更新时间:2023-12-01 12:32:53 25 4
gpt4 key购买 nike

我在同一个包中有以下 3 个类:

class Machine {

protected int id;

public Machine(int i) {
id = i;
}

public void start() {
System.out.println("Machine " + id + " starting.");
}
}

class Car extends Machine {

protected int id;

public Car(int i) {
super(i);
id = i;
}

public void start() {
super.start();
System.out.println("Car " + id + " starting.");
System.out.println("I can access parent variable" + super.id);
}
}

public class Application {

public static void main(String[] args) {
Machine machine = new Machine(2);
Car car = new Car(3);

car.start();
machine.start();
machine = car;
machine.start();
}
}

我现在有几个问题。如果我不再有意义,请告诉我,我会尝试重新表述自己。

  1. 我可以从主类访问 car.super 方法和变量吗?如果是这样怎么办?
  2. 当我实例化 Car 对象时,我还必须初始化通过调用机器类的构造函数来获取机器类的成员。做这个意味着当我创建一个新的 Car 对象时,总内存使用的是 Car 对象的大小 + Machine 的大小对象?
  3. 当我在两个类中有相同的变量“id”并访问它时使用汽车对象我得到汽车“id”,但是当我只在Machine 类并访问它我得到了 Machine 'id'。做这个这意味着本质上我正在重写机器“id”。我曾是假设成员变量不能被覆盖,只有方法可以。

最佳答案

1. protected 数据成员只能通过购买聚合类来访问。2.不知道。3.这是一个动态绑定(bind)的例子。这保留了 opps 功能,其中父级需要显式强制转换以指向聚合类。

关于java - 访问父类方法和变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25805789/

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