Sobes.tech
Junior — Middle

Cik maksimāli daudz abstraktu klasu var īstenot viena klase objektorientētā sistēmā?

sobes.tech AI

Atbilde no AI

C# valodā klase var manto tikai no viena abstrakta klases, jo daudzvirzienu mantošana netiek atbalstīta. Tomēr klase var īstenot vairākus interfeisus.

Piemērs:

abstract class Animal { public abstract void MakeSound(); }

interface IFlyable { void Fly(); }
interface ISwimmable { void Swim(); }

class Duck : Animal, IFlyable, ISwimmable
{
    public override void MakeSound() { Console.WriteLine("Quack"); }
    public void Fly() { Console.WriteLine("Flying"); }
    public void Swim() { Console.WriteLine("Swimming"); }
}

Šeit, klase Duck manto no vienas abstraktās klases Animal un īsteno divus interfeisus.