Java 访问父类方法和变量
我在同一个包中有以下3个类:Java 访问父类方法和变量,java,inheritance,polymorphism,Java,Inheritance,Polymorphism,我在同一个包中有以下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
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.受保护的数据成员只能通过聚合类访问。 2.不知道。 3.这是动态绑定的一个示例。这保留了opps特性,其中父类需要显式转换来指向聚合类。2)在为操作分配内存时,不存在超类和子类的概念。Java查看字段和实例所需的内存。它将查看
Machine
的实例并为intid
分配内存,然后查看Car
的实例,发现内存已经在父级中分配,并简单地分配值
如果您的Car
类有一个标记为number
和id
的字段,那么内存将分配给两个字段
看看这个家伙:你应该读一些关于你的标签的教程:继承、多态,但它们遗漏了一些细节。1。对请参阅:其他信息:如果数据成员是公共的,将如何处理。1的答案将更改?