В 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? Где возникнет проблема?

Любые входы / ссылки приветствуются.

Ответы на вопрос(3)

Ваш ответ на вопрос