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("Ոչ"); }
}