67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678

Наследуемый класс и ошибка "cannot be cast to."

17.12.2022, 13:48. Показов 331. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс Animal и 2 экземпляра класса Dog и Cat, наследуемых от Animal.
У Dog есть своство Property1, которого нет ни у Animal ни у Cat.
Для получения значения свойства объекта Dog я делаю так:

Animal dog = new Dog();
int Property1 = ((Dog) dog).Property1;

Но если ошибиться и создать объект new Cat(), то интерпритатор не сообщит об ошибке, а при выполнении получаю "cannot be cast to".
Есть ли правильный способ избежать этого? Ведь еще в процессе разработки ясно, что тут ошибка.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.12.2022, 13:48
Ответы с готовыми решениями:

Абстрактные классы, ошибка "Класс не реализует наследуемый абстрактный член"
Пишет, Ошибка 2 "WindowsFormsApplication6.MFControllerBool" не реализует наследуемый абстрактный член...

Абстрактные классы, ошибка "Класс не реализует наследуемый абстрактный член"
Всем доброго времени суток. Я новичок в этом деле. Помогите с следующим вопросом. Выдает ошибки: ...

Создать базовый класс Human и наследуемый класс Student
Создать базовый класс Human и наследуемый класс Student. В классе Human должны присутствовать следующие поля: фамилия, имя, отчество,...

4
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
17.12.2022, 14:09
Java
1
2
Dog dog = new Dog();
int Property1 = dog.Property1;
0
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
17.12.2022, 14:53  [ТС]
ExFau$t, это понятно.

Но я специально создавал объект с типом Animal, т.к. у меня в одной и той же Activity может быть работа с одним из нескольких видов наследников от Animal, в моем случае типа этого:
Java
1
Animal animal = new Dog();
Т.е. при одном запуске активити работаю с собаками, при другом запуске этой же активити работаю с кошками и т.д. При этом все операции произвожу с объектом Animal animal.
Вначале у меня был только один класс со всеми свойствами (какие-то нужны только для Dog, какие-то только для Cat). Почитав про наследуемость, решить переделать, но нарвался на такое.
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
17.12.2022, 15:08
Цитата Сообщение от Slon747 Посмотреть сообщение
Но я специально создавал объект с типом Animal
Ну значит ты намеренно делаешь неправильно. Перед кастом можно проверять instanceof класса.
1
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
17.12.2022, 15:28  [ТС]
Цитата Сообщение от ExFau$t Посмотреть сообщение
Перед кастом можно проверять instanceof класса
Ясно. Я думал, в ООП есть более изящное решение)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.12.2022, 15:28
Помогаю со студенческими работами здесь

Создать базовый класс Human и наследуемый класс Miner
Создать базовый класс Human и наследуемый класс, представленный в варианте задания. В классе Human должны присутствовать следующие...

Наследуемый класс в параметре шаблона
Нужно ограничить классы, передаваемые в параметры шаблона до классов, наследуемых от заданного. Пример- два класса : Класс...

Добавить конструктор в наследуемый класс
Добрый день, Я хочу добавить добавить конструктор в такой способ public class my_Dictionary<Tkey,Tvalue> :...

Реализовать наследуемый класс Driver
Создать базовый класс Human и наследуемый класс, представленный в варианте задания. В классе Human должны присутствовать следующие поля:...

Класс, наследуемый от UserControl не имеет InitializeComponent();
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru