Sobes.tech
Middle

Mis juhtub, kui abstraktses klassis määratleda tavaline meetod?

sobes.tech AI

Vastus AI-lt

Kui abstraktses klassis defineeritakse tavaline (mitteabstraktne) meetod, siis sellel meetodil on rakendus ning seda saab kutsuda alamklasside objektidel, mis pärivad seda abstraktset klassi.

Abstraktne klass toimib alusklassina, mis võib sisaldada nii abstraktseid meetodeid (ilma rakenduseta) kui ka tavalisi meetodeid rakendusega. Alamklassid peavad rakendama kõik abstraktsed meetodid, kuid võivad vajadusel kasutada või üle kirjutada tavalisi meetodeid.

Näide C#-s:

abstract class Animal
{
    public void Eat()  // tavaline meetod rakendusega
    {
        Console.WriteLine("Loom sööb");
    }

    public abstract void MakeSound();  // abstraktne meetod
}

class Dog : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine("Hau-hau");
    }
}

Selles näites on meetod Eat määratletud abstraktses klassis ja see on kättesaadav kõigile pärilastele ilma, et oleks vaja seda üle kirjutada. See võimaldab abstraktsel klassil pakkuda üldist funktsionaalsust, samas kui abstraktsed meetodid nõuavad spetsiifilise käitumise rakendamist.