Dziedziczenie

Dziedziczenie – jeden z fundamentów programowania obiektowego (OOP). Jest to możliwość dziedziczenia cech klasy nadrzędnej takich jak pola, metody przez przez klasy potomne które rozszerzają klasę nadrzędną.
Do dziedziczenia wykorzystuje się słówko kluczowe extends. Istotną rolę w temacie dziedziczenia odgrywają specyfikatory dostępu.
Warto zaznaczyć że w javie nie istnieje wielodziedziczenie!

class Zwierze {
    public String kolor;
    public void wydajDzwiek() {
        System.out.println("Zwierze wydaje dzwiek");
    }
}

class Hipopotam extends Zwierze {
    @Override
    public void wydajDzwiek() {
        System.out.println("hip hip hip");
    }
}

class Pingwin extends Zwierze {
    @Override
    public void wydajDzwiek() {
        System.out.println("Nigdy się nie zastanawiałem jakie dźwięki wydają pingwiny");
    }
}
public class NowojorskieZoo {
    public static void main(String args[]) {
    Hipopotam hipopotam = new Hipopotam();
    hipopotam.kolor = "szary";
    Pingwin pingwin = new Pingwin();
    pingwin.kolor = "czarno biały";

System.out.println("Hipopotam wydaje dźwięk:");
hipopotam.wydajDzwiek();
System.out.println("i jest koloru: "+hipopotam.kolor);
System.out.println("Pingwin wydaje dźwięk:");
pingwin.wydajDzwiek();
System.out.println("i jest koloru: "+pingwin.kolor);
}
}

Wadą wykorzystywania (nadużywania?) dziedziczenia jest tworzenie silnych powiązań pomiędzy klasami co prowadzi do późniejszych problemów w rozwijaniu takiego oprogramowania – łamana jest zasada Open/Closed Principle.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *