потому что я получаю ошибку. Я пытаюсь использовать приведение типа (B) б. и я получаю
тот же результат.
Помогает читать ошибки. Вы получаете ошибку приведения класса? Свойство не видна ошибка? а несвязанная ошибка из-за опечатки?
Чтение ошибки скажет вам точно.
Прямо сейчас вы объявили 'a' и 'b' как класс 'A'. Чтобы получить доступ к свойствам классов «B» и «C», вам придется либо привести переменные как «B» и «C», либо объявить их как «B» и «C».
Кроме того, вы не объявляли метод получения / установки, и переменные по умолчанию являются пакетными. Это означает, что вы не можете получить доступ к переменным извне класса.
Предположим, например, что у B есть геттер для 'prop3', вы можете использовать:
((B) b).getProp3();
Чтобы избежать предупреждения о сотворении класса, вы можете сделать:
if (b instanceof B)
{
((B) b).getProp3();
}
Однако всякий раз, когда вам нужно сделать вышеуказанное, вы должны переосмыслить свой дизайн. Старайтесь избегать этого всякий раз, когда это возможно