| | |
| |
|
Објектно оријентирани концепти во Јава - Прв дел |
Наследување
Една од најсилните страни на објектното оријентирано програмирање е наследувањето. Оваа можност ти овозможува да креираш нова класа базирана на веќе постоечка класа. Да речеме дека твојот програм треба да води сметка (на пример да ги брои) јаболкниците, за таа цел ќе ти треба нова класа, на пример наречена Jabolknica која пак ќе ги брои јаболката во секое дрво. Секако дека можеш да напишеш нова класа „Jabolknica“ од почеток, да го ископираш целиот код од класата „Drvo“ која веќе има можност за да ја следи висината на дрвото и му овозможува на дрвото да расте, но покомплексните класи би имале многу копиран (читај: ист) изворен код. Што би се случило доколку покасно одлучиш дека ти треба твоите дрвја да имаат висина од на пример 1.5 метри? Во случајов ќе треба да го преправиш кодот и во двете класи (а замисли да се 5-10-100).
Наследувањето ти овозможува да ја дефинираш класата Jabolknica како подкласа на класата Drvo, така да класата Jabolknica ги наследува особините и методите на класата Drvo покрај оние што самата таа ги дефинира. За да ме разбереш конкретно што сакам да кажам еве еден пример за класата Jabolknica:
1 /**
2 * Jabolknica.java
3 * Edno pokompleksno Drvo :) .
4 */
5
6 class Jabolknica extends Drvo{
7 public int vkupnoJabolka = 0; // Vkupen broj na jabolka
8
9 public void dodadiJabolko() {
10 vkupnoJabolka = vkupnoJabolka + 1;
11 }
12
13 public void skiniJabolko() {
14 vkupnoJabolka = vkupnoJabolka – 1;
15 }
16 }
Зборовите „extends Drvo“ во линијата 6 и овозможуваат на класата Jabolknica да ја има особеноста „visina“ и методата „rastenje()“ покрај својата особина „vkupnoJabolka“ и своите методи „dodadiJabolko()“ и „skiniJabolko()“ кои се експлицитно декларирани за неа.
Со градење на хиерархиска структура на класи со повеќе нивоа на наследување можеш да направиш моќни модели на објекти со малку или дури без дуплирање на изворен код (со што помалце ќе треба да куцаш, а и го олеснува одржувањето на програмот). Ќе видиш повеќе примери каде е прикажана моќта на наследување подоцна во написите кои следат.
|
|
|
|
|
|
| |
|
|
---|
JavaTM и Java-базираните ознаки се трговски марки или регистрирани трговски марки на Sun Microsystems, Inc. во САД и други држави. Java.com.mk никако не соработува со Sun Microsystems, Inc. Сите други трговски марки се сопственост на нивните сопственици. |
|