Полиморфизм времени выполнения Концепция ООП

По концепции упс. В случае приведения ссылочной переменной родительского класса не может выполняться личный метод дочернего класса, но когда я запускаю следующую программу-

interface My
{
}
class my1 implements My
{
    public String toString()
    {
        return "hello";
    }
    public static void main(String... s)
    {
        My m=new my1();
        System.out.println(m.toString());
    }
}

он успешно выполняется и печатает «привет». Кто-нибудь может объяснить, как это происходит...??

для большей ясности следующая программа выдает ошибку времени компиляции

interface My
{
}
class my1 implements My
{
    public String toString1()
    {
        return "hello";
    }
    public static void main(String... s)
    {
       My m=new my1();
       System.out.println(m.toString1());
    }
}

person Sumit Kamboj    schedule 25.11.2014    source источник
comment
Пожалуйста, дайте ссылку, где вы это прочитали.   -  person Sotirios Delimanolis    schedule 25.11.2014
comment
OOPS не предоставляет правил кастинга. Во-вторых нет суперкласса это интерфейс. В-третьих, совет; тебе следует читать книги.   -  person Juned Ahsan    schedule 25.11.2014
comment
Личный метод???? Что за бред......;(   -  person Ankit Sharma    schedule 25.11.2014
comment
@ankit Sharma - это означает метод дочернего класса, которого нет в родительском классе или интерфейсе.   -  person Sumit Kamboj    schedule 25.11.2014
comment
Вы сделали какую-нибудь домашнюю работу или обратились к какой-нибудь книге/ссылке, чтобы узнать, как работает полиморфизм, прежде чем задавать вопрос здесь?   -  person Ankit Sharma    schedule 25.11.2014