Middle
Abstrakt sinf va mixin o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
Abstrakt sinf:
- Odda od normal va abstrakt metodlar va maydonlar.
- To'g'ridan-to'g'ri abstrakt sinfning nusxasini yaratish mumkin emas.
- Konstruktorlarni o'z ichiga olishi mumkin.
extendskalit so'zi yordamida meros oladi. Yagona merosni qo'llab-quvvatlaydi.- Subklasslar uchun umumiy xulq-atvor va tuzilmani belgilash uchun ishlatiladi.
Mixin:
- Metodlar va maydonlarni o'z ichiga olishi mumkin, lekin konstruktorlarni belgilay olmaydi.
- Nusxa olish uchun mo'ljallanmagan.
- Meros olish hierarhiyasiga mos kelmaydigan sinflarga funksionallik qo'shish uchun ishlatiladi.
withkalit so'zi yordamida sinf bilan birlashtiriladi. Bir sinf bir nechta mixinlardan foydalanishi mumkin.
| Xususiyat | Abstrakt sinf | Mixin |
|---|---|---|
| Nusxa olish | To'g'ridan-to'g'ri yaratib bo'lmaydi | Yaratib bo'lmaydi |
| Konstruktorlar | Bo'lishi mumkin | Bo'lishi mumkin emas |
| Meros olish | extends (bir marta) |
with (ko'p marta) |
| Asosiy maqsad | Hierarxiyani belgilash | Xulq-atvor qo'shish |
Abstrakt sinfdan foydalanish misoli:
abstract class LivingBeing {
void breathe(); // Abstrakt metod
void grow() { // Oddiy metod
print('O'sib borayotgan...');
}
}
class Human extends LivingBeing {
@override
void breathe() {
print('O'pka bilan nafas olish');
}
}
Mixindan foydalanish misoli:
mixin Walkable {
void walk() {
print('Yurish...');
}
}
mixin Swimmable {
void swim() {
print('Suzish...');
}
}
class Dog with Walkable, Swimmable {
// Dog sinfi endi walk() va swim() metodlariga ega
}