Sobes.tech
Middle

Ի՞նչ է տարբերությունը աբստրակտ դասի և ինտերֆեյսի միջև։

sobes.tech AI

Պատասխան AI-ից

Աբստրակտ դաս — դա դաս է, որը կարող է պարունակել ինչպես իրագործված մեթոդներ, այնպես էլ աբստրակտ (իրականացման բաց) մեթոդներ: Այն ծառայում է որպես ժառանգության հիմք և կարող է պարունակել վիճակ (գոտիներ):

Ինտերֆեյս — դա պայմանագիր է, որը սահմանում է մեթոդների հավաքածու առանց իրագործման (քլասիկ իմաստով): Ինտերֆեյսը իրագործող դասը պարտավոր է իրագործել բոլոր մեթոդները:

Հիմնական տարբերությունները՝

  • Աբստրակտ դասը կարող է պարունակել իրագործում և վիճակ, ինտերֆեյսը՝ միայն մեթոդների ստորագրություններ (кей որոշ լեզուներում, ինտերֆեյսները կարող են պարունակել դեֆոլտ մեթոդներ):
  • Դասը կարող է ժառանգել միայն մեկ աբստրակտ դասից, բայց կարող է իրագործել մի քանի ինտերֆեյսներ:
  • Աբստրակտ դասը սահմանում է մասնակի իրագործում, ինտերֆեյսը՝ միայն պայմանագիր:

Java օրինակով՝

abstract class Animal {
    void eat() { System.out.println("Ճաշակել"); }
    abstract void sound();
}

interface Flyable {
    void fly();
}

class Bird extends Animal implements Flyable {
    void sound() { System.out.println("Կռկռոց"); }
    public void fly() { System.out.println("Ոչ"); }
}