В Java, мы можем передать объект суперкласса в ссылку на подкласс?
В Java, мы можем передать объект суперкласса в ссылку на подкласс?
Я знаю, что это странный вопрос / практически нежизнеспособный, но я хочу понять логику, лежащую в основе этого. Почему это не разрешено в Java?
class Employee {
public void met1(){
System.out.println("met1");
}
}
class SalesPerson extends Employee
{
@Override
public void met1(){
System.out.println("new met1");
}
public void met2(){
System.out.println("met2");
}
}
public class ReferenceTest {
public static void main(String[] args) {
SalesPerson sales = new Employee(); // line 1
sales.met1(); // line 2
sales.met2(); // line 3
}
}
Что бы произошло, если бы Java разрешил компиляцию строки 1? Где возникнет проблема?
Любые входы / ссылки приветствуются.