Программирование на Java | Модемы | Дипломы по радиотехнике и связи |
Программирование на языке Java
Динамическое назначение методов
teasernet_blockid = 181683; teasernet_padid = 62962; rch" align="justify">Давайте в качестве примера рассмотрим два класса, у которых имеют простое родство подкласс / суперкласс, причем единственный метод суперкласса замещен в подклассе.

class A {

void callme() {

System.out.println("Inside A's callrne method");

}}

class В extends A {

void callme() {

Syst

em.out.println("Inside B's callme method");

}}

class Dispatch {

public static void main(String args[]) { A a = new B(); a.callme(); }

}

Обратите внимание—внутри метода main мы объявили переменную а класса А, а проинициализировали ее ссылкой на объект класса В. В следующей строке мы вызвали метод callme. При этом транслятор проверил наличие метода callme у класса А, а исполняющая система, увидев, что на самом деле в переменной хранится

представитель класса В, вызвала не метод класса А, а callme класса В. Ниже приведен результат работы этой программы:

С:\> Java Dispatch Inside B's calime method

Замечание

Программистам Delphi / C следует отметить, что все Java по умолчанию являются виртуальными функциями (ключевое слово virtual).

Рассмотренная форма динамического полиморфизма времени выполнения представляет собой один из наиболее мощных механизмов объектно-ориентированного программирования, позволяющих писать надежный, многократно используемый код.


< пред след >
вернуться к содержанию
вернуться к списку источников

перейти на главную страницу