Izpitno vprašanje RAČ2PRA 400

Iz MaFiRaWiki

Vsebina

Vprašanje

|Vpr. 400| Kaj je to dedovanje? Obrazloži na primeru!

Odgovor

Kaj je to dedovanje?

Pri objektno orientiranem programiranju se ukvarjamo z razredi. Razred lahko definiramo tako, da preprosto opišemo vse njegove spremenljivke in metode, lahko pa se pri nejegovi definiciji skličemo tudi na že obstoječi razred - novi razred vsebuje vse to, kar pozna že obstoječi in mogoče še nekaj več. To sklicevanje imenujemo dedovanje.

Na kratko o dedovanju v Javi:

http://colos1.fri.uni-lj.si/~sis/COMPUTING/Java/JAVA_TECAJ/dedovanje.htm

Primer dedovanja

public abstract class Lik { //razred Lik

 double x;     //podatek x
 double y;     //podatek y
 
 //konstruktor
 //lik z vhodnima podatkoma x in y
 public Lik(double x, double y) { 
   this.x = x;
   this.y = y;
 }
 
 public void transliraj(double dx, double dy) {
   x = x + dx;
   y = y + dy;
 }
 
 public abstract double ploscina();
 

}

Ker je v razredu Lik definirana metoda ploscina, ki je abstraktna (ker za splošni lik ne moremo definirati ploščine), iz tega sledi, da je celotni razred definiran kot abstrakten.


 public class Krog extends Lik {   //podrazred Krog nadrazreda Lik
 
 double r;     //polmer
 
 public Krog(double x, double y, double r) {
   super(x, y); 
   this.r = r;
 }
 
 public double ploscina() {
   return Math.PI * r * r;
 }

}

Besedica extends pomeni razširi in je uporabljena zato, ker razred Krog vsebuje vse komponente in metode, ki jih vsebuje razred Lik, in še dodatne komponente in metode, ki jih Lik morda nima.

Osebna orodja