Periytyminen
(Inheritance)
Periytyminen tarkoittaa yksinkertaistaen yhden luokan piirteiden siirtymistä eli periytymistä jollekin toiselle luokalle. Esimerkiksi mikäli A-luokan piirteet periytyvät B-luokalle niin A on B:n yliluokka ja B on A:n aliluokka. Yksittäisperiytymisessä jokaisella luokalla on enintään yksi yliluokka.
Esimerkki luokkahierarkiasta (yksittäisperiyttäminen,
Esimerkit tällä sivulla kirjasta "Pieni Oliokirja"):
Luokkien sisältämät piirteet:
A: a, b
B: a,b,c
C: a,b,d,e
D: a,b,d,e,f
A on B:n esi-isä, B on A:n jälkeläinen Periytymisen seuraus: olioon ei liity enää yksittäistä luokkaa. Perusluokka: luokka, jonka ilmentymänä olio luotiin.
Oliolla on yleensä useammasta luokasta periytyneitä piirteitä, joita voidaan havainnollistaa esimerkiksi kerrosmallilla, missä yhdestä oliosta perityt piirteet muodostavat yhden kerroksen.

Kaksi keskeistä tavoitetta ovat koodin uusiokäyttö sekä ohjelmankehityksen pohjautumuninen käsitteelliseen mallintamiseen.
class Henkilo {
private String nimi;
private int ika = 0;
public ristiminen (String n) {
nimi = new String (n);
}
public void tervehdi () {
System.out.println(" Terve, olen " + nimi);
}
public void vanhene () {
ika++;
}
}
class Nainen extends Henkilo {
private boolean martta = false;
public void liity() {
martta = true;
}
}
class Mies extends Henkilo {
private boolean arvo = 0;
public void ylene () {
arvo++;
}
}
class Paaohjelma {
public static int main (String args[]) {
Mies m = new Mies ();
Nainen n = new nainen ();
n.ristiminen ("Maija";
m.ristiminen ("Matti");
m.ylene ();
n.liity ();
}
}
class Henkilo {
protected String nimi;
private int ika = 0;
public ristiminen (String n) {
nimi = new String (n);
ika = 0;
}
public void tervehdi () {
System.out.println(" Terve, olen " + nimi);
}
public void vanhene () {
ika++;
}
public void anna_ika () {
if (ika > 29) return 29;
else return ika;
}
}
class Nainen extends Henkilo {
public Nainen (String n) {
...
}
private boolean martta = false;
public void liity() {
martta = true;
nimi = "Emäntä " + nimi;
}
}