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();





