NASLEĐIVANJE KLASE

1

UNIVERZITET U PRIŠTINI

PRIRODNO-MATEMATIČKI FAKULTET

KOSOVSKA MITROVICA

SEMINARSKI RAD

Tema: 

Nasleđivanje klasa

( klijent-server sistemi )

Mentor

     

    Kantidat

Marko Smiljić

                                                                                 Marko Rusimović

Kosovska Mitrovica, 2014. godine

NASLEĐIVANJE KLASE

2

Sadržaj

1.Nasleđivanje 
klasa.....................................................................3

1.1.Osnovni 
pojmovi.....................................................................
3

1.2.Hijerarhija 
klasa...................................................................11

1.3.Slu bena

 

re

ž

č

 

super................................................................19

1.4.Klasa 
Object.......................................................................
..26

1.5.Polimorfizam...........................................................
.............30

LITERATURA

background image

NASLEĐIVANJE KLASE

4

         Treba imati u vidu da terminologija u vezi sa nasledivanjem klasa nije
standardizovana. Uglavnom iz istorijskih razloga, ali i licnih a niteta autora, u

 

upotrebi su razliciti termini koji su sinonimi za polaznu klasu i klasu naslednicu: 
osnovna i pro irena klasa, bazna i izvedena klasa, natklasa i potklasa, klasa

š

 

roditelj i klasa dete, pa i nadredena i podredena klasa.

         U svakodnevnom radu, narocito za programere koji su tek poceli da 
seupoznaju   sa   objektno   orijentisanim   pristupom,   nasledivanje   se   koristi 
uglavnom za menjanje vec

/ postojec

/e klase koju treba prilagoditi sa nekoliko 

izmena ili dopuna. To je mnogo ce c

/a situacija nego pravljenje kolekcije klasa i

š

 

pro irenih klasa od pocetka.

š

         De nicija nove klase koja pro iruje postojec

/u klasu ne razlikuje se mnogo

š

 

od uobicajene de nicije obicne klase:

modifikatori

 class 

nova-klasa

 extends 

stara-klasa

 {

                           *

*  // Izmene ili dopune postojec

/e klase

                           *
                        }

         U ovom op tem obliku, nova-klasa je ime nove klase koja se de ni e, a

š

fi š

 

stara-klasa je ime postojec

/e klase koja se pro iruje. Telo nove klase izmedu

š

 

viticastih zagrada ima istu strukturu kao telo neke uobicajene klase. Prema 
tome, jedina novost kod nasledivanja klase je pisanje slu bene reci extends i

ž

 

imena postojec

/e klase iza imena nove klase. Na primer, kostur definicije klase B 

koja nasleduje klasu A ima ovaj izgled: 

class B extends A {

                               * 
                               *  // Novi  lanovi klase B 

č

ili izmene

                               *  // postojec

/ih  lanova klase A

č

                               *
                          }

         Su tinu i prednosti nasledivanja klasa je najbolje objasniti na nekom

š

 

primeru. Posmatrajmo zato program za obracun plata radnika neke firme i 

NASLEĐIVANJE KLASE

5

razmotrimo klasu koja mo e predstavljati te radnike u kontekstu obracuna

ž

 

njihovih plata. Ako zanemarimo enkapsulaciju podataka da ne bismo primer
komplikovali sa geter i seter metodima, prvi poku aj de nisanja klase Radnik

š

 

mo e izgledati na primer:

ž

                   public class Radnik {

                   String ime; // 

ime i prezime radnika

                   long jmbg;

// 

jedinstven broj radnika

                   long ra un;

č

// 

bankovni ra un radnika

č

                   double plata;  // 

plata radnika

                   public void uplatiPlatu() {
                   System.out.print("Plata za " + ime + ", broj " + jmbg);
                   System.out.println(" uplac

/ena na ra un " + ra

č

č

un);

          }

                   public double izracunajPlatu() {
                     // 

Obra unavanje mese ne plate radnika

č

č

          }
          }

                 Na prvi pogled izgleda da klasa Radnik dobro opisuje radnike za 
obracunavanje njihovih mesecnih plata. Svaki radnik ima svoje ime, jedinstven 
broj i racun u banci. Jedina dilema postoji oko metoda koji obracunava platu 
radnika. Problem je u tome  to u  rmi mo e raditi vi e vrsta radnika u pogledu

š

ž

š

 

nacina obracunavanja njihove mesecne plate.

         Pretpostavimo da u  rmi neki radnici imaju  ksnu mesecnu zaradu, dok

 

su drugi plac

/eni po radnim satima po odredenoj ceni sata. Re enje koje nam se

š

 

odmah namec

/e, narocito ako dolazimo iz sveta proceduralnog programiranja, 

jeste da klasi Radnik dodamo indikator koji ukazuje na to da li se radio jednoj ili 
drugoj vrsti radnika. Ako dodamo logicko polje plac

/enPoSatu, na primer, onda 

background image

NASLEĐIVANJE KLASE

7

                    . . .
                    break;
                }
            }
         Naravno, svaki put kada se u firmi zaposle novi radnici sa drugacijim 
nacinom plac

/anja, mora se menjati ovaj metod za obracun plate i dodati novi

slucaj.
         Bolje re enje, ali jo  uvek ne i ono pravo, jeste da se klasa Radnik podeli u

š

š

 

dve (ili vi e) klasa koje odgovaraju vrstama radnika prema nacinu obracuna

š

 

njihove plate. Na primer, za radnike koji su mesecno plac

/eni fiksno ili po radnim 

satima, mogu se de nisati dve klase na sledec

/i na in:

č

        public class RadnikPla´cenFiksno {

                  String ime;

// 

ime i prezime radnika

                  long jmbg;

        // 

jedinstven broj radnika

                  long ra un;

č

// 

bankovni raˇcun radnika

                  double plata;     // 

meseˇcna plata radnika

          public void uplatiPlatu() {
                 System.out.print("Plata za " + ime + ", broj " + jmbg);
                 System.out.println(" uplac

/ena na ra un " + ra un);

č

č

         }

          public double izra unajPlatu()

č

 {

          return plata;
       }
    }

           public class RadnikPlac

/enPoSatu {

                 String ime;

     // 

ime i prezime radnika

                  long jmbg;

             // 

jedinstven broj radnika

                  long ra un;

č

     // 

bankovni ra un radnika

č

Želiš da pročitaš svih 32 strana?

Prijavi se i preuzmi ceo dokument.

Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.

Slični dokumenti