русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Использование super для вызова конструктора суперкласса


Дата добавления: 2015-01-08; просмотров: 633; Нарушение авторских прав


Из конструктора подкласса можно осуществить вызов конструктора суперкласса используя ключевое слово super в следующей форме.

super(список параметров);

где список параметров – список передаваемых переменных конструктору суперкласса. Эта инструкция должна быть всегда первой в конструкторуе подкласса. Как и обычный конструктор (точнее в соответствии с ним) super может быть перегружен.

class A // суперкласс А

{ int a; // (public) доступен в подклассе

private int b; // не доступен в подклассе

protected int c; // доступен в подклассе

A(){} // конструктор без параметров

A(int aa, int bb) // конструктор c 2 параметрами

{ a = aa; // создание нового объекта

b = bb;

c = a+b;

}

A(int aa, int bb, int cc) // конструктор c 3 параметрами

{ a = aa; // создание нового объекта

b = bb;

c = cc;

}

A(A ob) // конструктор параметром объект

{ a = ob.a; // построение клона объекта

b = ob.b;

c = ob.c;

}

void fun_A()

{ System.out.println("supperclass (a,b,c) "+a+' '+ b+' '+c);

}

 

}

class B extends A // подкласс В

{ int d;

B() { } // конструктор без параметров

B(int aa, int bb, int dd) // конструктор c 3 параметрами

{ super(aa,bb);

d = dd;

}

B(int aa, int bb, int cc, int dd) // конструктор c 4 параметрами

{ super(aa,bb,cc);

d = dd;

}

B(B ob) // конструктор параметром объект



{ super(ob);

d = ob.d; // построение клона объекта

}

void fun_B()

{ System.out.println("subclass (a,c,d) "+a+' '+c+' '+d);

}

}

class start

{ public static void main(String[] args)

{ A ob1=new A(1,2);

ob1.fun_A();

A ob2=new A(3,4,5);

ob2.fun_A();

B ob3 = new B(6,7,8,9);

ob3.fun_A();

ob3.fun_B();

B ob4 = new B(10,11,12);

ob4.fun_A();

ob4.fun_B();

}

}

Несколько слов о конструкторе:

B(B ob) // конструктор параметром объект



{ super(ob);

d = ob.d; // построение клона объекта

}

В нем super(ob), вызывается для объекта типа класс B. Эта инструкция активизирует конструктор своего непосредственного суперкласса А:

A(A ob),

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

 



<== предыдущая лекция | следующая лекция ==>
Основы наследования | Использование super для доступа к скрытым членам суперкласса


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.561 сек.