19-dars — Javada abstrakt klass.
Abstract kalit so’zi bilan yaratilgan klasslar abstrakt klasslar deb nomlanadi. Abstrakt klasslar abstakt funksiyalar (tanasi yozilmagan funksiya) yoki abstrakt bo’lmagan funksiyalardan (tanasi yozilgan funksiya) tashkil topgan bo’ladi.
Abstrakt klass quyidagicha e’lon qilinadi:
abstract class A{
}
- Abstrakt klasslar odatda super(ota) klasslar yaratishda ishlatiladi;
- Abstrakt klasslardan yaratilayotgan klasslarimizni sxemasini ya’ni skletini yaratishda foydalaniladi;
- Abstrakt klassimizda undan meros oladigan klasslar uchun umumiy bo’lgan funksiyalar, konstantlar, o’zgaruvchilar e’lon qilinadi.
Tanasi (implementation) yozilmagan va abstract kalit so’zi bilan yaratilgan funksiya — abstrakt funksiya deyiladi.
abstract void funksiya();
Abstrakt funksiyasi bor bo’lgan abstrakt klassga misol:
public abstract class Mashina { abstract void madeli(); abstract void mashinaTuri(); abstract void uzunligi(); abstract void rangi(); } public class Malibu extends Mashina{ @Override void madeli() { System.out.println("Chevrolet"); } @Override void mashinaTuri() { System.out.println("Malibu"); } @Override void uzunligi() { System.out.println("4.7 metr"); } @Override void rangi() { System.out.println("Qora"); } public static void main(String[] args) { Mashina mashina = new Malibu(); mashina.madeli(); mashina.mashinaTuri(); mashina.uzunligi(); mashina.rangi(); } }
Natija :
Chevrolet
Malibu
4.7 metr
Qora
Yuqoridagi misolda Malibu klassi abstrakt funksiyalari (modeli, mashinaTuri, uzunligi, rangi) bor bo’lgan Mashina abstarkt klassidan nasl olyapti va uning abstrakt klassi tanasini realizatsiya(Override) qilayapti.
Amaliyotda abstrakt klass bir nechta klasslar uchun ota klass vazifasini bajaradi va abstrakt funksiyalar turli bola klasslarda turlicha realizatsiya qilinadi.
Shuningdek abstrakt klass konstruktor, tanasi bor funksiya, ma’lumotlar va hattoki main() funksiyaga ega bo’lishi mumkin. Quyidagi misolga qarang:
Esda tuting: Agar klass tarkibida bitta bo’lsa ham abstarkt funksiya mavjud bo’lsa, klass ham abstract bo’lishi kerak.
Esda tuting: Agar biror klass abstrakt klassdan voris olsa, uning barcha abstrakt funksiyalarini realizatsiya qilishi kerak yoki o’zi ham abstrakt klass bo’lishi kerak.
Manba:
Umumiy Dasturlash
19-dars — Javada abstrakt klass.