В настоящее время я изучаю наследование, и у меня возникли проблемы с пониманием концепции. Для следующего кода может кто-нибудь сказать мне, почему я не могу объявить подкласс типа Superclass?
public class Test{
public static void main(String[] args){
Superclass myA = new Superclass();
Superclass myB = new Subclass();
}
public class Superclass{
private string a;
public Superclass()
{
a="";
}
public void setA(String userA)
{
a = userA;
}
}
public class Subclass extends Superclass{
private String b;
public Subclass()
{
b = "";
}
public void setB(String userB)
{
b = userB;
}
public void display()
{
System.out.print(b)
}
}
myA не доставляет мне никаких проблем, но myB создает. Я хочу создать массив, скажем, суперкласса, но я хочу иметь возможность использовать подкласс. Что-то вроде этого
Superclass[] X = new Superclass[2];
x[0] = new Subclass();
X[0].setB("hello");
X[0].display();