Sobes.tech
Junior — Middle

Jakie są główne funkcje i zastosowania klas abstrakcyjnych w programowaniu obiektowym?

sobes.tech AI

Odpowiedź od AI

Klasy abstrakcyjne w programowaniu obiektowym to klasy, które nie są przeznaczone do tworzenia instancji bezpośrednio, lecz służą jako podstawowe szablony dla innych klas.

Główne funkcje klas abstrakcyjnych:

  • Definiowanie wspólnego interfejsu i podstawowego zachowania dla grupy powiązanych klas.
  • Możliwość deklarowania metod abstrakcyjnych (bez implementacji), które muszą być zaimplementowane przez podklasy.
  • Pozwalają na częściową implementację funkcjonalności, którą dziedziczą klasy potomne.

Zastosowanie:

  • Gdy konieczne jest ustalenie wspólnego kontraktu dla różnych implementacji.
  • Gdy część logiki jest wspólna, a inna musi być zaimplementowana w dziedziczących klasach.

Przykład w Java:

abstract class Animal {
    abstract void makeSound(); // metoda abstrakcyjna
    void breathe() {
        System.out.println("Oddycha");
    }
}

class Dog extends Animal {
    void makeSound() {
        System.out.println("Hau hau");
    }
}

Tutaj, Animal nie może być tworzony bezpośrednio, ale można utworzyć Dog, który implementuje metodę makeSound.