Sobes.tech
Junior — Middle

Ar galite pateikti pavyzdį apie abstraktų klasę objektinio programavimo kontekste?

sobes.tech AI

Atsakymas iš AI

Abstracti klasė yra klasė, kuri nėra skirta tiesiogiai kurti egzempliorius, bet tarnauja kaip pagrindinė klasė kitoms klasėms. Ji gali turėti tiek įgyvendintus metodus, tiek abstrakčius (be įgyvendinimo) metodus, kurie turi būti įgyvendinti pogrupiuose.

Pavyzdys Java (Android) abstrakčios klasės:

public abstract class Animal {
    // Abstraktus metodas — turi būti įgyvendintas pogrupiuose
    public abstract void makeSound();

    // Paprastas metodas su įgyvendinimu
    public void sleep() {
        System.out.println("Gyvūnas miega");
    }
}

public class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Au au!");
    }
}

// Naudojimas
Animal dog = new Dog();
dog.makeSound(); // Išves: Au au!
dog.sleep();     // Išves: Gyvūnas miega

Šiame pavyzdyje Animal yra abstrakti klasė su abstraktu metodu makeSound(). Klasė Dog paveldi iš Animal ir įgyvendina šį metodą.