Veza poziva metode sa tijelom metode se naziva povezivanje. Postoje dva tipa povezivanja
Podsjetimo se pojma tipa instance 1) Varijable imaju tip Svaka varijabla ima tip, koji može biti primitivan ili ne-primitivan.
int data=30;
Ovdje je varijabla data tipa int. 2) Reference imaju tip
class Dog{ public static void main(String args[]){ Dog d1; //Ovdje je d1 tipa Dog } }
3) Objekti imaju tip Objekt je instanca određene java klase, ali je takođe instanca svoje superklase.
class Animal{} class Dog extends Animal{ public static void main(String args[]){ Dog d1=new Dog(); } }
Ovdje je d1 instanca klase Dog, ali je takođe instanca klase Animal.
Kada je tip objekta određen u vremenu kompajliranja (od strane kompajlera), to je poznato kao statičko povezivanje. Ako u klasi postoji bilo koja private, final ili static metoda, postoji i statičko povezivanje. Primjer statičkog povezivanja
class Dog{ private void eat(){System.out.println("dog is eating...");} public static void main(String args[]){ Dog d1=new Dog(); d1.eat(); } }
Kada je tip objekta određen u vremenu izvršavanja (runtime), to je poznato kao dinamičko povezivanje. Primjer dinamičkog povezivanja
class Animal{ void eat(){System.out.println("animal is eating...");} } class Dog extends Animal{ void eat(){System.out.println("dog is eating...");} public static void main(String args[]){ Animal a=new Dog(); a.eat(); } } Ispis na ekranu: dog is eating...
U ovom primjeru tip objekta ne može odrediti kompajler, zato što je instanca klase Dog takođe instanca klase Animal. Tako kompajler ne zna njen tip, već samo njen osnovni tip.
Objektno orijentisano programiranje u Javi Index