Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Присвоение более общего типа более конкретному


Автор: Royan 3.8.2007, 10:11
Это вопрос больше из теории. Почему в Java и не только в ней нельзя присвоить, например, переменной с объектом конкретного класса переменную с типом интерфейса? Например:

Код

public void setValue (IClass cl) {
    MyClass mcl = cl;
}

Какие ключевые соображения были положены в подобное решение?

Автор: AlexeyVorotnikov 3.8.2007, 10:22
Ну, например,
Код

MyClass extends IClass {}
YourClass extends IClass {}

YourClass yourObject = new YourClass();


И что тогда получится при вызове setValue(yourObject) ? (из вашего примера)

Получится, что переменной типа MyClass попытатся присвоить объект класса YourClass, который, вообще говоря, может быть несовместим с MyClass.

Так же рекомендую прочитать какую-нибудь книгу по ООП.

Автор: batigoal 3.8.2007, 10:23
Так, собственно, я и не вижу логики в подобной операции.

Автор: LSD 3.8.2007, 13:17
Гы забавный подход, программа ожидает String, а мы ей подсунем Object. Вот она удивится smile 

Автор: Royan 3.8.2007, 16:21
Похоже, что начальный посыл был неверен. Окей, закрываю тему. Убедился, что глупый вопрос.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)