Java 是否可以将子类的实例分配给超类的变量?
我对超类和子类背后的定义和逻辑感到困惑 总之,是的。因为子类实例是超类,所以可以将其分配给这样的变量 考虑以下示例-字符串是一个对象,因此此赋值是合法的: 对象obj=abcd;//这是一个字符串文本Java 是否可以将子类的实例分配给超类的变量?,java,inheritance,subclass,superclass,Java,Inheritance,Subclass,Superclass,我对超类和子类背后的定义和逻辑感到困惑 总之,是的。因为子类实例是超类,所以可以将其分配给这样的变量 考虑以下示例-字符串是一个对象,因此此赋值是合法的: 对象obj=abcd;//这是一个字符串文本 总之,是的。因为子类实例是超类,所以可以将其分配给这样的变量 考虑以下示例-字符串是一个对象,因此此赋值是合法的: 对象obj=abcd;//这是一个字符串文本 快速回答您的问题:是的,几乎可以在超类的任何地方指定子类 原因包括继承和面向对象编程。让我给你举个例子。让我们想想火车和火车车厢,它们是
总之,是的。因为子类实例是超类,所以可以将其分配给这样的变量 考虑以下示例-字符串是一个对象,因此此赋值是合法的: 对象obj=abcd;//这是一个字符串文本
快速回答您的问题:是的,几乎可以在超类的任何地方指定子类 原因包括继承和面向对象编程。让我给你举个例子。让我们想想火车和火车车厢,它们是火车的一部分 超类是轨道车。每辆火车都有重量
public class RailwayCar {
private int weight;
public RailwayCar() {
}
public RailwayCar(int weight) {
setWeight(weight);
}
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
public void arriveAtStation(Station station) {}
public void leaveStation(Station station) {}
}
那只是一辆基本的汽车。然而,也有特殊的汽车
// Engines have power in addition to weight
public class Engine extends RailwayCar {
private int power;
public Engine(int weight, int power) {
super(weight);
setPower(power);
}
public void setPower(int power) {
this.power = power;
}
public int getPower() {
return power;
}
}
还有其他类型的汽车。例如,可能有一辆客运汽车,乘客上下车时,每个车站的重量可能会发生变化。对于特定类型的货物,有特定类型的汽车。圆木车里会有很长的圆木
RailwayCar的所有这些子类都可以覆盖车站方法arriveAtStation和leaveStation,通过覆盖这些方法来执行特定操作
所有这些汽车都可以放在同一个列表或阵列中。例如,RailwayCar[]cars,或List cars=new ArrayList 快速回答您的问题:是的,几乎可以在超类的任何地方指定子类 原因包括继承和面向对象编程。让我给你举个例子。让我们想想火车和火车车厢,它们是火车的一部分 超类是轨道车。每辆火车都有重量
public class RailwayCar {
private int weight;
public RailwayCar() {
}
public RailwayCar(int weight) {
setWeight(weight);
}
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
public void arriveAtStation(Station station) {}
public void leaveStation(Station station) {}
}
那只是一辆基本的汽车。然而,也有特殊的汽车
// Engines have power in addition to weight
public class Engine extends RailwayCar {
private int power;
public Engine(int weight, int power) {
super(weight);
setPower(power);
}
public void setPower(int power) {
this.power = power;
}
public int getPower() {
return power;
}
}
还有其他类型的汽车。例如,可能有一辆客运汽车,乘客上下车时,每个车站的重量可能会发生变化。对于特定类型的货物,有特定类型的汽车。圆木车里会有很长的圆木
RailwayCar的所有这些子类都可以覆盖车站方法arriveAtStation和leaveStation,通过覆盖这些方法来执行特定操作
所有这些汽车都可以放在同一个列表或阵列中。例如,RailwayCar[]cars,或List cars=new ArrayList