виртуальные методы в java



Виртуальный метод

Автор F@nto4k@ задал вопрос в разделе ВУЗы, Колледжи

Расскажите, для чего вобще нужны Виртуальные методы? и получил лучший ответ

Ответ от P_alex_2000[гуру]
Читай:
Виртуальный метод (виртуальная функция) — в объектно-ориентированном программировании метод (функция) класса, который может быть переопределён в классах-наследниках так, что конкретная реализация метода для вызова будет определяться во время исполнения. Таким образом, программисту необязательно знать точный тип объекта для работы с ним через виртуальные методы: достаточно лишь знать, что объект принадлежит классу или наследнику класса, в котором метод объявлен.
Виртуальные методы — один из важнейших приёмов реализации полиморфизма. Они позволяют создавать общий код, который может работать как с объектами базового класса, так и с объектами любого его класса-наследника. При этом, базовый класс определяет способ работы с объектами и любые его наследники могут предоставлять конкретную реализацию этого способа. В некоторых языках программирования, например в Java, нет понятия виртуального метода, данное понятие следует применять лишь для языков в которых методы родительского класса не могут быть переопределены по умолчанию, а только с помощью некоторых вспомогательных ключевых слов.
Базовый класс может и не предоставлять реализации виртуального метода, а только декларировать его существование. Такие методы без реализации называются «чисто виртуальными» (калька с англ. pure virtual) или абстрактными. Класс, содержащий хотя бы один такой метод, тоже будет абстрактным. Объект такого класса создать нельзя (в некоторых языках допускается, но вызов абстрактного метода приведёт к ошибке). Наследники абстрактного класса должны предоставить реализацию для всех его абстрактных методов, иначе они, в свою очередь, будут абстрактными классами.
Для каждого класса, имеющего хотя бы один виртуальный метод, создаётся таблица виртуальных методов. Каждый объект хранит указатель на таблицу своего класса. Для вызова виртуального метода используется такой механизм: из объекта берётся указатель на соответствующую таблицу виртуальных методов, а из неё, по фиксированному смещению, — указатель на реализацию метода, используемого для данного класса. При использовании множественного наследования или интерфейсов ситуация несколько усложняется за счёт того, что таблица виртуальных методов становится нелинейной.

Ответ от МАДАМ Туся!!![гуру]
для воображения

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Расскажите, для чего вобще нужны Виртуальные методы?

С++ виртуальный метод
Например:
Есть класс Window. Стандартный виндовый какой-нить. Или из какой-нить библиотеки
подробнее...

подскажите чем виртуальная функция отличается от обычной функции
Виртуальные и динамические методы не связаны с другими методами с тем
же именем в классах —
подробнее...

Что такое метод?
По С. Ожегову метод - это способ теоретического исследования или практического осуществления
подробнее...
спросили в Textron
Delphi: объясните своими словами virtual, abstract и override
Доброго времени суток.

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

ООП: что такое инкапсуляция, абстракция, полиморфизм и наследование?
инкапсуляция - включение в класс данных (или других классов) с ограничением доступа к ним.
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:

Что такое "интерфейс"? Вот, я читаю - "IDisposable - это такой интерфейс..."... и Что такое IDisposable?
Интерфейс - такое хитрое наследование, которое отражает некий аспект поведения, в отличие от
подробнее...

Подскажите по программированию... Что такое в delphi Спецификаторы virtual, abstract, override, dynamic Спасибо!!!
Мне стыдно за Вас. Если вы изучаете делфи, то в книге все описано. Более того, загуглить Вам
подробнее...

Виртуальные методы C++
Тем что пре вызове указателя с типом базового класса будет вызван соответствующий виртуальный матод
подробнее...
спросили в Байт код
В чем отличие байт кода от машинного?
Байт-кодом называется машинный код для виртуальной
подробнее...
спросили в Наивность
Объектно ориентированное программирование. (ООП)
Так никто нормально и не ответил!
Три признака ООП: инкапсуляция, наследование и полиморфизм.
подробнее...

Подскажите как расшифровывается абривиатура PIC- микроконтроллер?
Название PIC является сокращением от Peripheral Interface Controller, что означает "периферийный
подробнее...

чем отличается free от delete[ ] C++
delete вызывает деструктор, free этого делать не
подробнее...

для чего нужны виртуальные функции в C+/+?
Современные программы могут насчитывать десятки тысяч классов, которые связаны между собой
подробнее...
спросили в Академики
Метод академика Бронникова кто испытывал, реально или нет ?
О Методе Бронникова:

У нормально развитого человека головной мозг работает на 3-5%, у
подробнее...

Метод мартингейла
Метод Мартингейла рассчитан на неграмотных людей не знакомых с математикой или которым просто лень
подробнее...
Виртуальный метод на Википедии
Посмотрите статью на википедии про Виртуальный метод
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*