Programowanie obiektowe (OOP) jest jednym z fundamentalnych paradygmatów w Javie, pozwalającym na organizację kodu w sposób modularny i łatwy do zarządzania. Kluczowymi konceptami OOP są klasy i dziedziczenie, które umożliwiają definiowanie nowych typów danych oraz budowanie hierarchii obiektów. W tej lekcji przedstawimy, jak tworzyć własne klasy w Javie i jak wykorzystywać dziedziczenie do rozszerzania ich funkcjonalności.
Przykład kodu: Prosta hierarchia klas w Javie
// Klasa bazowa opisująca pojazd
class Vehicle {
    // Pole opisujące nazwę pojazdu
    protected String name;
    
    // Konstruktor klasy Vehicle
    public Vehicle(String name) {
        this.name = name;
    }
    
    // Metoda do wyświetlania informacji o pojazdzie
    public void displayInfo() {
        System.out.println("Pojazd: " + name);
    }
}
// Klasa Car dziedzicząca z klasy Vehicle
class Car extends Vehicle {
    // Pole opisujące liczbę drzwi w samochodzie
    private int doors;
    
    // Konstruktor klasy Car
    public Car(String name, int doors) {
        super(name); // Wywołanie konstruktora klasy bazowej
        this.doors = doors;
    }
    
    // Nadpisanie metody displayInfo
    @Override
    public void displayInfo() {
        super.displayInfo(); // Wywołanie metody z klasy bazowej
        System.out.println("Liczba drzwi: " + doors);
    }
}
// Główna klasa z metodą main
public class Main {
    public static void main(String[] args) {
        // Utworzenie obiektu klasy Car
        Car myCar = new Car("Ford", 4);
        myCar.displayInfo(); // Wywołanie metody wyświetlającej informacje
    }
}
Wyjaśnienie działania programu
- Klasa 
Vehicle: Jest to klasa bazowa, która definiuje ogólne cechy pojazdu, takie jak nazwa. Zawiera konstruktor do inicjalizacji nazwy pojazdu oraz metodędisplayInfodo wyświetlenia informacji o pojazdzie. - Klasa 
Car: Dziedziczy z klasyVehiclei rozszerza jej funkcjonalność o liczbę drzwi. Konstruktor klasyCarprzyjmuje nazwę pojazdu i liczbę drzwi, wywołując konstruktor klasy bazowej do inicjalizacji nazwy. MetodadisplayInfojest nadpisana, aby dodatkowo wyświetlić liczbę drzwi. - Klasa 
Mainz metodąmain: Jest to punkt wejścia programu. Tworzy on obiekt klasyCari wywołuje jego metodędisplayInfo, aby wyświetlić szczegółowe informacje o samochodzie. 
Podsumowanie
Tworzenie własnych klas i implementowanie dziedziczenia w Javie pozwala na budowanie skomplikowanych systemów w sposób zorganizowany i efektywny. Dziedziczenie umożliwia rozszerzanie istniejących klas o nowe funkcjonalności, przy jednoczesnym zachowaniu i wykorzystaniu kodu klasy bazowej. Stosowanie tych technik jest kluczowe w efektywnym wykorzystaniu paradygmatu programowania obiektowego.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs Java od podstaw w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.