Java abstraksiya
Abstrakt sinflar va metodlar
Ma’lumotlar abstraksiyasi — ba’zi tafsilotlarni yashirib, foydalanuvchiga faqat muhim ma’lumotlarni ko‘rsatish jarayoni.
Abstraksiyaga abstrakt sinflar yoki interfeyslar (ular haqida keyingi bobda batafsil bilib olasiz) yordamida erishish mumkin.
abstract kalit so‘zi sinflar va metodlar uchun ishlatiladigan, kirishga oid bo‘lmagan modifikator:
- Abstrakt sinf: obyekt yaratish uchun ishlatib bo‘lmaydigan cheklangan sinf (unga murojaat qilish uchun undan boshqa sinf meros olishi kerak).
- Abstrakt metod: faqat abstrakt sinfda ishlatilishi mumkin va uning tanasi bo‘lmaydi. Tanani voris sinf (meros olgan sinf) taqdim etadi.
Abstrakt sinfda ham abstrakt, ham oddiy metodlar bo‘lishi mumkin:
abstract class Animal {
public abstract void animalSound();
public void sleep() {
System.out.println("Zzz");
}
}
Yuqoridagi misoldagi Animal sinfining obyektini yaratib bo‘lmaydi:
Animal myObj = new Animal(); // will generate an error
Abstrakt sinfga murojaat qilish uchun undan boshqa sinf meros olishi kerak. Keling, Polimorfizm bobida ishlatgan Animal sinfimizni abstrakt sinfga aylantiramiz:
Vorislik bobidan eslang: sinfdan meros olish uchun extends kalit so‘zidan foydalanamiz.
Misol
// Abstract class
abstract class Animal {
// Abstract method (does not have a body)
public abstract void animalSound();
// Regular method
public void sleep() {
System.out.println("Zzz");
}
}
// Subclass (inherit from Animal)
class Pig extends Animal {
public void animalSound() {
// The body of animalSound() is provided here
System.out.println("The pig says: wee wee");
}
}
class Main {
public static void main(String[] args) {
Pig myPig = new Pig(); // Create a Pig object
myPig.animalSound();
myPig.sleep();
}
}
Nima uchun va qachon abstrakt sinflar va metodlardan foydalanish kerak?
Xavfsizlikka erishish uchun — ba’zi tafsilotlarni yashirib, obyektning faqat muhim tafsilotlarini ko‘rsatish.
Eslatma: Abstraksiyaga interfeyslar yordamida ham erishish mumkin, ular haqida keyingi bobda batafsil bilib olasiz.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
