«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Ссылки на суперклассы и объекты подклассов

Ссылки на суперклассы и объекты подклассов

Опубликовано 8 ноября 2024 г.
Просматривать:555
  • Java — строго типизированный язык.

  • К примитивным типам применяются стандартные преобразования и автоматическое продвижение.

  • Совместимость типов строго соблюдается.

  • Обычно ссылочная переменная из одного класса не может ссылаться на объект из другого класса.

Referências da superclasse e objetos da subclasse

  • Даже если классы X и Y структурно одинаковы, невозможно присвоить ссылку X объекту Y, поскольку типы различаются.

  • Как правило, переменная ссылки на объект может ссылаться только на объекты своего типа.

  • Исключением из правила наложения типов является то, что ссылочная переменная суперкласса может ссылаться на объекты любого подкласса, производного от этого суперкласса.

Referências da superclasse e objetos da subclasse

  • Поскольку Y является производным от X, x2 разрешено получать ссылку на объект Y.

  • Тип ссылочной переменной, а не тип объекта, на который она ссылается, определяет элементы, к которым возможен доступ.

  • Когда ссылка на объект подкласса присваивается переменной суперкласса, доступ возможен только к членам, определенным суперклассом.

  • В этом примере x2 не может получить доступ к элементу b из Y, поскольку класс X не знает о членах, добавленных подклассом.

  • Ссылки на подклассы, присвоенные переменным суперкласса, встречаются часто, особенно при вызове конструкторов в иерархиях классов.

  • Подклассы могут извлечь выгоду из конструкторов, которые принимают объект из суперкласса в качестве параметра, позволяя создавать копии объектов.

Referências da superclasse e objetos da subclasse

Referências da superclasse e objetos da subclasse

Referências da superclasse e objetos da subclasse

  • В этой программе t2 создан из t1 и поэтому идентичен.

  • Внимание в этом конструкторе треугольников:
    // Создает один объект из другого.
    Треугольник(Объект треугольника) {
    супер(об); // передает объект конструктору TwoDShape
    стиль = ob.style;
    }

  • Он получает объект типа Triangle и передает его (через супер) этому конструктору TwoDShape:
    //Конструирует один объект из другого.
    TwoDShape(TwoDShape ob) {
    ширина = об.ширина;
    высота = ob.height;
    }

  • Конструктор TwoDShape() ожидает получить объект типа TwoDShape.

  • Конструктор подкласса Triangle() передает ему объект типа Triangle.

  • Это работает, потому что ссылка из суперкласса, например TwoDShape, может ссылаться на объект из подкласса, например Triangle.

  • Допускается передавать ссылку от объекта производного класса на конструктор суперкласса.

  • Конструктор суперкласса TwoDShape() инициализирует только члены, принадлежащие классу TwoDShape, независимо от дополнительных членов подкласса Triangle.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/devsjavagirls/referencias-da-superclasse-e-objetos-da-subclasse-2d45?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3