Mavzu: Abstrakt sinflar, Encapsulation Reja: Abstrakt sinflar


Abstrakt darslarning maqsadi


Download 21.49 Kb.
bet3/6
Sana30.01.2023
Hajmi21.49 Kb.
#1142029
1   2   3   4   5   6
Bog'liq
Abstrakt sinflar, Encapsulation

Abstrakt darslarning maqsadi
Mavhum sinflarning asosiy maqsadi to'liq amalga oshirilishini yaratish uchun ularning pastki sinflari tomonidan kengaytirilishi kerak bo'lgan asosiy sinflar sifatida ishlashdir.
Misol uchun, bizda myJob() usuli bo'lgan supersinf odami bor va kichik sinflar O'qituvchi, Rassom, Qo'shiqchi va boshqalarga o'xshaydi. Har bir insonning ishi turli kasblarga to'g'ri kelishi bir xil bo'lmagani uchun, bu usulni amaliyotda qo'llashdan foyda yo'q. ota-onalar sinfi. Buning sababi shundaki, har bir kichik sinf/bolalar sinfi ushbu usulni amalga oshirish tafsilotlarini berish uchun uni bekor qilishi kerak, masalan, O'qituvchi sinf ushbu usulda "O'qitish" ni bajaradi va Painter sinfi "Rasm" va hokazo.
Shunday qilib, biz barcha Person bolalar sinflari ushbu myJob() usulini bekor qilishlari kerakligini bilsak, bu usulni ota-sinfda qo'llashning ma'nosi yo'q. Shunday qilib, ushbu usulni mavhum qilish munosib tanlov bo'ladi. Ushbu usulni mavhum qilish orqali biz barcha kichik sinflar uchun ushbu usulni amalga oshirishni majburiy qilib qo'ydik; aks holda biz kompilyatsiya xatosiga duch kelamiz. Usul mavhum bo'lsa, biz ota-sinfda biron bir usulni qo'llashimiz shart emas.
Person klassi mavhum usulga ega bo'lganligi sababli, bu sinfni abstrakt deb e'lon qilishingiz kerak.
Har bir insonning ishi bo'lishi kerak; shuning uchun bu usulni mavhum qilish orqali biz bolalar sinfiga ushbu usulni amalga oshirish tafsilotlarini berishni majburiy qilib qo'ydik. Shunday qilib, biz har bir odamning ish joyiga ega bo'lishini ta'minladik.
Abstrakt sinfga misol
//abstract parent class
public abstract class Person{
//abstract method
public abstract void myJob();
}
//Teacher class extending Person class
public class Teacher extends Person {
public abstract void myJob(){
System.out.println(“My job is Teaching.”);
}}
//Painter class extending Person class
public class Painter extends Person {
public abstract void myJob(){
System.out.println(“My job is Painting.”); }}
Public static void main(String args[]){
Person obj;
obj = new Teacher();
System.out.println(“TEACHER-” + obj.myJob());
obj = new Painter();
System.out.println(“PAINTER-” + obj.myJob());
}
Chiqish:
O'qituvchi - Mening ishim - O'qituvchilik.
RASKOCH - Mening ishim - rasm chizish.
Shunday qilib, bunday turdagi real stsenariylar uchun biz odatda sinfni mavhum deb e'lon qilamiz va keyinroq aniq sinflar bu sinflarni kengaytiradi va shunga mos ravishda usullarni bekor qiladi. Ularning usullari ham bo'lishi mumkin.

Download 21.49 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling