Në shumë raste na duhet të krijojmë një klasë ku objektet e saj kanë një strukturë me specifike apo më shumë funksione se klasë tjetër që kemi përcaktuar më parë.
Në paradigmën e programimit të orientuar sipas objekteve, Inheritance (trashëgim) është mekanizmi kryesor për të ripërdorur kodin por dhe për një programim në rritje (incremental development).
superclass – klasa me e përgjithshme
subclass – klasa e re me e specifike
Thuhet se subclass-a trashëgon gjithçka nga superclass-a (fields, methods, dhe nested classes).
Sintaksa e Inheritance: Për të shfrytëzuar trashëgueshmërinë përdorim fjalën e rezervuar nga Java extends.
Shëmbull me Inheritance në Java
Krijoni një klasë me emrin Person ku constructori te marri dy parametra.
public class Person { String emri; String mbiemri; public Person(String emri, String mbiemri) { this.emri = emri; this.mbiemri = mbiemri; } public String getEmer() { return emri; } public String getMbiemer() { return mbiemri; } public void shfaqPerson() { System.out.println("Emri: " + emri + "\nMbiemri: " + mbiemri); } }
Tani krijoni një klasë tjetër Student e cila bën extends klasës Person.
public class Student extends Person { int nrAmzes; public Student(String emri, String mbiemri, int nrAmzes) { super(emri, mbiemri); this.nrAmzes = nrAmzes; } public void shfaqStudent(){ System.out.println("**Studenti**"); shfaqPerson(); System.out.println("Numer Amze " + nrAmzes); } }
Tani ne Main na ngelet vetëm te krijojmë këta persona:
Person p = new Person("Artan", "Artani"); Student s = new Student("Arben", "Arbeni", 123456); p.shfaqPerson(); s.shfaqStudent();