SlideShare a Scribd company logo
1 of 34
Obyekt yönümlü
proqramlaşdırma
Samir Həsənov
Orient İTM
Məzmun
• OOP nədir? Ümumi məlumat
• Sinif, obyekt, konstruktor və metod anlayışı
• OOP əsas konseptləri
• İnkapsulyasiya (Encapsulation)
• Varislik (İnheritance)
• Polimorfizm (Polymorphism)
• Sual-cavab
OOP nədir?
• Proqramlaşdırma paradiqması
• 1950-1960 illərdə MİT-də “obyekt”
anlayışı
• Bütün hissələr obyekt və onların bir-biri
ilə olan əlaqəsindən ibarətdir
• Prosedur proqramlaşdırmadan üstün
cəhətləri
• Yazılan kodun təkrar istifadə olunması
• Böyük həcmdə kodun asan idarə
olunması
Obyekt yönümlü proqramlaşdırma
dilləri
Obyekt ??
Sinif, Obyekt, Konstruktor və Metod
Sinif və Obyekt
Sinif, Obyekt və Konstruktor
Metod
Metod Overload və Override
Metod Overloading
• Eyni sinif daxilində eyni adlı və qəbul etdiyi
arqumentlərin sayı və tipi eyni olan birdən çox
metod yaratmaq kompilyasiya səhvi ilə
nəticələnir. Belə ki, kompilyator yazılan metodları
hansı xassəsinə görə ayıracağını təyin edə bilmir.
Metod Overloading
• Kompilyator metodları
ayırmaq üçün onların
adlarına, qəbul etdiyi
arqument saylarına və
arqumentlərin tiplərinə
(ardıcıllıqla) baxır. Metodun
qaytardığı tip kompilyator
tərəfindən yoxlanılmır.
• Sinif daxilində eyni adlı,
lakin qəbul etdiyi
arqumentlərin sayı və ya tipi
fərqli bir neçə metod yarada
bilərik. Bu üsul metod
overloading adlanır.
Metod Overriding
• Metodların override olunması prinsipinin izahı
polimorfizm bölümündə verilmişdir.
OOP əsas 3 konsepti
• İnkapsulyasiya (Encapsulation)
• Varislik (İnheritance)
• Polimorfizm (Polymorphism)
İnkapsulyasiya (Encapsulation)
İnkapsulyasiya (Encapsulation)
• Məlumat gizlətmə və ya “Qara qutu” anlayışı
• İnkapsulyasiya sinifin dəyişənlərini “private”
göstərməklə digər siniflərdən onlara birbaşa
əlaqənin qarşısını almaq prosesinə deyilir. Bu
zaman sinif dəyişənlərinə müraciət birbaşa
deyil, yalnız “public” nişanlanmış metodlar
vasitəsilə həyata keçirilir.
İnkapsulyasiya (Encapsulation)
İnkapsulyasiya olunmamış İnkapsulyasiya olunmuş
İnkapsulyasiyanın faydaları
• Sinif dəyişənlərinə birbaşa əlaqə olmadığından bu
dəyişənlər ”read-only” və ya “write-only” kimi istifadə
oluna bilər
• Sinif öz daxili dəyişənləri üzərində tam idarəyə malik olur.
Belə ki, dəyişənlərə olan müraciət yalnız metodlar
vasitəsilə olduğundan, bu məlumatın nə tip və necə
saxlanılacağına metod daxilində tam nəzarət edə bilərik.
• Sinifdən istifadə edən digər istifadəçilər dəyişənlərin necə
saxlanıldığı haqqda xəbərsiz olurlar. Hətta gələcəkdə
proqramçı tərəfindən dəyişənlərin tipi dəyişilərsə,
istifadəçilərin öz kodunu dəyişməyə ehtiyac olmur.
Varislik (İnheritance)
Varislik (İnheritance)
• Üst sinifdən alınan daha konkret sinif “subclass” adlanır
• Bu əlaqədə daha abstrakt olan üst sinif isə “superclass”
adlanır.
• Java proqramlaşdırma dilində Object sinifi varislik
ierarxiyasının ən üst pilləsində durur və bütün digər
siniflərin superclass-ı sayılır.
• Java proqramlaşdırma dilində Object sinfindən başqa
bütün siniflər birbaşa əlaqə ilə yalnız bir sinifdən
törəmə sayılır. Javada birbaşa bir neçə sinifdən varisliyə
icazə verilmir.
• Bir sinif digər birindən törəyir, digər sinif öz növbəsində
başqa sinifdən törəyir, ən üst sinif isə Object sinfindən
törəmiş olur. Beləcə varislik ierarxiyası alınır.
Varislik (İnheritance)
Subclass-da nə edə bilərik?
• Keçid modifikatorlarından asılı olaraq superclass-dan
alınma sinif dəyişənləri ilə birbaşa əlaqə yarada
bilərik
• Superclass-da olan hər hansı dəyişən ilə eyni adlı
dəyişən təyin edə bilərik, beləliklə superclass-dakı
dəyişəni gizləmiş olarıq (məsləhət görülmür)
• Superclass-da olmayan yeni dəyişənlər təyin etməklə
sinfimizi daha konkretləşdirə bilərik
• Superclass-dan alınma metodlara birbaşa müraciət
edə bilərik
Varislik (İnheritance)
Subclass-da nə edə bilərik?
• Superclass-da olan metod ilə eyni göstəricili metod
yaradaraq bu metodu override etmiş olarıq
• Superclass-da olan metod ilə eyni göstəricili static
metod yaradaraq superclass-dakı metodu gizləmiş
olarıq
• Yeni metodlar təyin etməklə sinifi daha
konkretləşdirə bilərik
• Superclass-ın konstruktoruna gizli və ya aşkar
müraciət edən konstruktor yarada bilərik
Varislik (İnheritance)
Varislik (İnheritance)
Superclass Subclass
Varislik (İnheritance)
“IS-A” əlaqəsi:
• Varislik zamanı daha konkret subclass ilə
superclass arasında “IS-A” əlaqəsi mövcüd
olur. Baxdığımız misalda: RoadBike is a
Bicycle. Buna əsasən subclass-ın obyektinə
istinad edən dəyişənə superclass tipini
mənimsədə bilərik:
Varisliyin faydaları
• Varislik konseptinin məntiqi çox sadədir, lakin
kodun təkrarlanmasının qarşısını alır.
Yazdığınız bir sinif ilə ümumi oxşar cəhətləri
olan sinif yaradarkən yenidən kod yazmağa
ehtiyac olmur. Belə ki, ümumi dəyişən və
metodları superclass-a ötürərək varislik
konseptindən istifadə edib daha az kod ilə
daha geniş siniflər yaratmaq mümkündür. Bu
öz növbəsində kodun keyfiyyətini artırır və
proqram yaratma prosesini sürətləndirir.
Polimorfizm (Polymorphism)
Polimorfizm (Polymorphism)
• Polimorfizm sözü
biologiya elmində bir
orqanizmin bir neçə hal və
ya şəkil alması mənasını
daşıyır. Bu prinsip obyekt
yönümlü
proqramlaşdırmada da
istifadə oluna bilər.
Belə ki, sinifin sublass-ı özünün unikal davranış metodlarını
təyin edə bilər və bununla yanaşı superclass ilə ümumi
xassələri paylaşa bilər. Bu zaman subclass superclass-ın
metodlarını override edərək özünə uyğunlaşdırır.
Metod overriding
Superclass-da təyin edilmiş metodlar (statik olmayan) eyni ad,
qəbul etdiyi arqument sayı və tipi eyni olmaqla subclass-da da
təyin edilərsə, bu zaman subclass superclass-ın metodunu
override etmiş sayılır.
Polimorfizm (Polymorphism)
Polimorfizm (Polymorphism)
Animal sinfinin iki subclass-ını yaradaq: Cat və Dog
Polimorfizm (Polymorphism)
• Polimorfizm konseptini işlədək
Nəticə:
Polimorfizmin faydası
• Polimorfizmin əsas məqsədi daha az kod ilə daha
üstün məhsuldarlıq əldə etməkdir. Yazılan kodun
oxşar xassələrə malik bir neçə sinif üçün
təkrarlanmadan ümumi yazılmasına nail olmaq.
Sual ??

More Related Content

What's hot

Software Craftsmanship - Code Smells - Object Orientation Abusers
Software Craftsmanship - Code Smells - Object Orientation AbusersSoftware Craftsmanship - Code Smells - Object Orientation Abusers
Software Craftsmanship - Code Smells - Object Orientation AbusersRajat Singla
 
Seminário - Linguagem Dart: Structured web apps
Seminário - Linguagem Dart: Structured web appsSeminário - Linguagem Dart: Structured web apps
Seminário - Linguagem Dart: Structured web appsGiancarlo Silva
 
Proqramlasdirma dillerinin tesnifati
Proqramlasdirma dillerinin tesnifatiProqramlasdirma dillerinin tesnifati
Proqramlasdirma dillerinin tesnifatiXaleddinMemmedov
 
Pseudocode flowcharts
Pseudocode flowchartsPseudocode flowcharts
Pseudocode flowchartsnicky_walters
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoLuiz Junior
 
JavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a ObjetosJavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a ObjetosEduardo Mendes
 
Final keyword in java
Final keyword in javaFinal keyword in java
Final keyword in javaHitesh Kumar
 
Visula C# Programming Lecture 1
Visula C# Programming Lecture 1Visula C# Programming Lecture 1
Visula C# Programming Lecture 1Abou Bakr Ashraf
 
Lec 01 basic concepts
Lec 01 basic conceptsLec 01 basic concepts
Lec 01 basic conceptsAbdul Khan
 
Introduction To Computer Programming
Introduction To Computer ProgrammingIntroduction To Computer Programming
Introduction To Computer ProgrammingHussain Buksh
 
If else statement in c++
If else statement in c++If else statement in c++
If else statement in c++Bishal Sharma
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented ProgrammingRAJU MAKWANA
 

What's hot (20)

Subroutines
SubroutinesSubroutines
Subroutines
 
11. İnkapsulasiya və Varislik
11. İnkapsulasiya və Varislik11. İnkapsulasiya və Varislik
11. İnkapsulasiya və Varislik
 
Software Craftsmanship - Code Smells - Object Orientation Abusers
Software Craftsmanship - Code Smells - Object Orientation AbusersSoftware Craftsmanship - Code Smells - Object Orientation Abusers
Software Craftsmanship - Code Smells - Object Orientation Abusers
 
Seminário - Linguagem Dart: Structured web apps
Seminário - Linguagem Dart: Structured web appsSeminário - Linguagem Dart: Structured web apps
Seminário - Linguagem Dart: Structured web apps
 
Proqramlasdirma dillerinin tesnifati
Proqramlasdirma dillerinin tesnifatiProqramlasdirma dillerinin tesnifati
Proqramlasdirma dillerinin tesnifati
 
Basic concepts of oops
Basic concepts of oopsBasic concepts of oops
Basic concepts of oops
 
Pseudocode flowcharts
Pseudocode flowchartsPseudocode flowcharts
Pseudocode flowcharts
 
Polymorphism in oop
Polymorphism in oopPolymorphism in oop
Polymorphism in oop
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao Avançado
 
11. java methods
11. java methods11. java methods
11. java methods
 
JavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a ObjetosJavaScript - Introdução com Orientação a Objetos
JavaScript - Introdução com Orientação a Objetos
 
Java literals
Java literalsJava literals
Java literals
 
Final keyword in java
Final keyword in javaFinal keyword in java
Final keyword in java
 
C# classes objects
C#  classes objectsC#  classes objects
C# classes objects
 
Visula C# Programming Lecture 1
Visula C# Programming Lecture 1Visula C# Programming Lecture 1
Visula C# Programming Lecture 1
 
Lec 01 basic concepts
Lec 01 basic conceptsLec 01 basic concepts
Lec 01 basic concepts
 
Introduction To Computer Programming
Introduction To Computer ProgrammingIntroduction To Computer Programming
Introduction To Computer Programming
 
If else statement in c++
If else statement in c++If else statement in c++
If else statement in c++
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 
polymorphism
polymorphism polymorphism
polymorphism
 

Viewers also liked

İKT sahəsində əsas i̇stiqamətlər və i̇ş i̇mkanları
İKT sahəsində əsas i̇stiqamətlər və i̇ş i̇mkanlarıİKT sahəsində əsas i̇stiqamətlər və i̇ş i̇mkanları
İKT sahəsində əsas i̇stiqamətlər və i̇ş i̇mkanlarıRamin Orujov
 
Android Platform Overview - Azercell Barama
Android Platform Overview - Azercell BaramaAndroid Platform Overview - Azercell Barama
Android Platform Overview - Azercell BaramaRamin Orujov
 
Java proqramlaşdirma mühitində təhlükəsiz proqram təminatinin hazirlanma texn...
Java proqramlaşdirma mühitində təhlükəsiz proqram təminatinin hazirlanma texn...Java proqramlaşdirma mühitində təhlükəsiz proqram təminatinin hazirlanma texn...
Java proqramlaşdirma mühitində təhlükəsiz proqram təminatinin hazirlanma texn...Irkan Akhmedov
 
Informatika 6 shirvan 20_ceferova esmira nurush
Informatika 6 shirvan 20_ceferova esmira nurushInformatika 6 shirvan 20_ceferova esmira nurush
Informatika 6 shirvan 20_ceferova esmira nurushmimio_azerbaijan
 
Informatika 6 3_ismayilova terane
Informatika 6 3_ismayilova teraneInformatika 6 3_ismayilova terane
Informatika 6 3_ismayilova teranemimio_azerbaijan
 
Python ilə Proqramlaşdırma Kitabı - TƏQDİMAT
Python ilə Proqramlaşdırma Kitabı - TƏQDİMATPython ilə Proqramlaşdırma Kitabı - TƏQDİMAT
Python ilə Proqramlaşdırma Kitabı - TƏQDİMATKarim Tahiroglu
 
Riyaziyyat 6 285_yusifova sahire
Riyaziyyat 6 285_yusifova sahireRiyaziyyat 6 285_yusifova sahire
Riyaziyyat 6 285_yusifova sahiremimio_azerbaijan
 
Informatika 6 3_ismayilova terane
Informatika 6 3_ismayilova teraneInformatika 6 3_ismayilova terane
Informatika 6 3_ismayilova teranemimio_azerbaijan
 
Informatika 6 goranboy_sefikurd kend t.o.m
Informatika 6 goranboy_sefikurd kend t.o.mInformatika 6 goranboy_sefikurd kend t.o.m
Informatika 6 goranboy_sefikurd kend t.o.mmimio_azerbaijan
 
Informatika 6 sumqayit 3_qehremanova resmiyye novruz
Informatika 6 sumqayit 3_qehremanova resmiyye novruzInformatika 6 sumqayit 3_qehremanova resmiyye novruz
Informatika 6 sumqayit 3_qehremanova resmiyye novruzmimio_azerbaijan
 
ALPLogo. Proqramda dəyişənlər
ALPLogo. Proqramda dəyişənlərALPLogo. Proqramda dəyişənlər
ALPLogo. Proqramda dəyişənlərmimio_azerbaijan
 
IP Security
IP SecurityIP Security
IP SecurityS H
 
Milli kurikulum vesait abdulla
Milli kurikulum vesait abdullaMilli kurikulum vesait abdulla
Milli kurikulum vesait abdullaAZERİ AZERBAYCAN
 
Природа Азербайджана
Природа АзербайджанаПрирода Азербайджана
Природа Азербайджанаmimio_azerbaijan
 

Viewers also liked (19)

İKT sahəsində əsas i̇stiqamətlər və i̇ş i̇mkanları
İKT sahəsində əsas i̇stiqamətlər və i̇ş i̇mkanlarıİKT sahəsində əsas i̇stiqamətlər və i̇ş i̇mkanları
İKT sahəsində əsas i̇stiqamətlər və i̇ş i̇mkanları
 
Android Platform Overview - Azercell Barama
Android Platform Overview - Azercell BaramaAndroid Platform Overview - Azercell Barama
Android Platform Overview - Azercell Barama
 
Android platform
Android platformAndroid platform
Android platform
 
Java proqramlaşdirma mühitində təhlükəsiz proqram təminatinin hazirlanma texn...
Java proqramlaşdirma mühitində təhlükəsiz proqram təminatinin hazirlanma texn...Java proqramlaşdirma mühitində təhlükəsiz proqram təminatinin hazirlanma texn...
Java proqramlaşdirma mühitində təhlükəsiz proqram təminatinin hazirlanma texn...
 
Informatika 6
Informatika 6Informatika 6
Informatika 6
 
Informatika 6 shirvan 20_ceferova esmira nurush
Informatika 6 shirvan 20_ceferova esmira nurushInformatika 6 shirvan 20_ceferova esmira nurush
Informatika 6 shirvan 20_ceferova esmira nurush
 
Informatika 6 3_ismayilova terane
Informatika 6 3_ismayilova teraneInformatika 6 3_ismayilova terane
Informatika 6 3_ismayilova terane
 
Python ilə Proqramlaşdırma Kitabı - TƏQDİMAT
Python ilə Proqramlaşdırma Kitabı - TƏQDİMATPython ilə Proqramlaşdırma Kitabı - TƏQDİMAT
Python ilə Proqramlaşdırma Kitabı - TƏQDİMAT
 
Riyaziyyat 6 285_yusifova sahire
Riyaziyyat 6 285_yusifova sahireRiyaziyyat 6 285_yusifova sahire
Riyaziyyat 6 285_yusifova sahire
 
Informatika 6 3_ismayilova terane
Informatika 6 3_ismayilova teraneInformatika 6 3_ismayilova terane
Informatika 6 3_ismayilova terane
 
Informatika 6 goranboy_sefikurd kend t.o.m
Informatika 6 goranboy_sefikurd kend t.o.mInformatika 6 goranboy_sefikurd kend t.o.m
Informatika 6 goranboy_sefikurd kend t.o.m
 
Informatika 6 sumqayit 3_qehremanova resmiyye novruz
Informatika 6 sumqayit 3_qehremanova resmiyye novruzInformatika 6 sumqayit 3_qehremanova resmiyye novruz
Informatika 6 sumqayit 3_qehremanova resmiyye novruz
 
Koordinat sistemi
Koordinat sistemiKoordinat sistemi
Koordinat sistemi
 
ALPLogo. Proqramda dəyişənlər
ALPLogo. Proqramda dəyişənlərALPLogo. Proqramda dəyişənlər
ALPLogo. Proqramda dəyişənlər
 
Alp logo
Alp logoAlp logo
Alp logo
 
Çevrənin uzunluğu
Çevrənin uzunluğuÇevrənin uzunluğu
Çevrənin uzunluğu
 
IP Security
IP SecurityIP Security
IP Security
 
Milli kurikulum vesait abdulla
Milli kurikulum vesait abdullaMilli kurikulum vesait abdulla
Milli kurikulum vesait abdulla
 
Природа Азербайджана
Природа АзербайджанаПрирода Азербайджана
Природа Азербайджана
 

Obyekt yönümlü proqramlaşdırma

  • 2. Məzmun • OOP nədir? Ümumi məlumat • Sinif, obyekt, konstruktor və metod anlayışı • OOP əsas konseptləri • İnkapsulyasiya (Encapsulation) • Varislik (İnheritance) • Polimorfizm (Polymorphism) • Sual-cavab
  • 3. OOP nədir? • Proqramlaşdırma paradiqması • 1950-1960 illərdə MİT-də “obyekt” anlayışı • Bütün hissələr obyekt və onların bir-biri ilə olan əlaqəsindən ibarətdir • Prosedur proqramlaşdırmadan üstün cəhətləri • Yazılan kodun təkrar istifadə olunması • Böyük həcmdə kodun asan idarə olunması
  • 8. Sinif, Obyekt və Konstruktor
  • 10. Metod Overload və Override
  • 11. Metod Overloading • Eyni sinif daxilində eyni adlı və qəbul etdiyi arqumentlərin sayı və tipi eyni olan birdən çox metod yaratmaq kompilyasiya səhvi ilə nəticələnir. Belə ki, kompilyator yazılan metodları hansı xassəsinə görə ayıracağını təyin edə bilmir.
  • 12. Metod Overloading • Kompilyator metodları ayırmaq üçün onların adlarına, qəbul etdiyi arqument saylarına və arqumentlərin tiplərinə (ardıcıllıqla) baxır. Metodun qaytardığı tip kompilyator tərəfindən yoxlanılmır. • Sinif daxilində eyni adlı, lakin qəbul etdiyi arqumentlərin sayı və ya tipi fərqli bir neçə metod yarada bilərik. Bu üsul metod overloading adlanır.
  • 13. Metod Overriding • Metodların override olunması prinsipinin izahı polimorfizm bölümündə verilmişdir.
  • 14. OOP əsas 3 konsepti • İnkapsulyasiya (Encapsulation) • Varislik (İnheritance) • Polimorfizm (Polymorphism)
  • 16. İnkapsulyasiya (Encapsulation) • Məlumat gizlətmə və ya “Qara qutu” anlayışı • İnkapsulyasiya sinifin dəyişənlərini “private” göstərməklə digər siniflərdən onlara birbaşa əlaqənin qarşısını almaq prosesinə deyilir. Bu zaman sinif dəyişənlərinə müraciət birbaşa deyil, yalnız “public” nişanlanmış metodlar vasitəsilə həyata keçirilir.
  • 18. İnkapsulyasiyanın faydaları • Sinif dəyişənlərinə birbaşa əlaqə olmadığından bu dəyişənlər ”read-only” və ya “write-only” kimi istifadə oluna bilər • Sinif öz daxili dəyişənləri üzərində tam idarəyə malik olur. Belə ki, dəyişənlərə olan müraciət yalnız metodlar vasitəsilə olduğundan, bu məlumatın nə tip və necə saxlanılacağına metod daxilində tam nəzarət edə bilərik. • Sinifdən istifadə edən digər istifadəçilər dəyişənlərin necə saxlanıldığı haqqda xəbərsiz olurlar. Hətta gələcəkdə proqramçı tərəfindən dəyişənlərin tipi dəyişilərsə, istifadəçilərin öz kodunu dəyişməyə ehtiyac olmur.
  • 20. Varislik (İnheritance) • Üst sinifdən alınan daha konkret sinif “subclass” adlanır • Bu əlaqədə daha abstrakt olan üst sinif isə “superclass” adlanır. • Java proqramlaşdırma dilində Object sinifi varislik ierarxiyasının ən üst pilləsində durur və bütün digər siniflərin superclass-ı sayılır. • Java proqramlaşdırma dilində Object sinfindən başqa bütün siniflər birbaşa əlaqə ilə yalnız bir sinifdən törəmə sayılır. Javada birbaşa bir neçə sinifdən varisliyə icazə verilmir. • Bir sinif digər birindən törəyir, digər sinif öz növbəsində başqa sinifdən törəyir, ən üst sinif isə Object sinfindən törəmiş olur. Beləcə varislik ierarxiyası alınır.
  • 21. Varislik (İnheritance) Subclass-da nə edə bilərik? • Keçid modifikatorlarından asılı olaraq superclass-dan alınma sinif dəyişənləri ilə birbaşa əlaqə yarada bilərik • Superclass-da olan hər hansı dəyişən ilə eyni adlı dəyişən təyin edə bilərik, beləliklə superclass-dakı dəyişəni gizləmiş olarıq (məsləhət görülmür) • Superclass-da olmayan yeni dəyişənlər təyin etməklə sinfimizi daha konkretləşdirə bilərik • Superclass-dan alınma metodlara birbaşa müraciət edə bilərik
  • 22. Varislik (İnheritance) Subclass-da nə edə bilərik? • Superclass-da olan metod ilə eyni göstəricili metod yaradaraq bu metodu override etmiş olarıq • Superclass-da olan metod ilə eyni göstəricili static metod yaradaraq superclass-dakı metodu gizləmiş olarıq • Yeni metodlar təyin etməklə sinifi daha konkretləşdirə bilərik • Superclass-ın konstruktoruna gizli və ya aşkar müraciət edən konstruktor yarada bilərik
  • 25. Varislik (İnheritance) “IS-A” əlaqəsi: • Varislik zamanı daha konkret subclass ilə superclass arasında “IS-A” əlaqəsi mövcüd olur. Baxdığımız misalda: RoadBike is a Bicycle. Buna əsasən subclass-ın obyektinə istinad edən dəyişənə superclass tipini mənimsədə bilərik:
  • 26. Varisliyin faydaları • Varislik konseptinin məntiqi çox sadədir, lakin kodun təkrarlanmasının qarşısını alır. Yazdığınız bir sinif ilə ümumi oxşar cəhətləri olan sinif yaradarkən yenidən kod yazmağa ehtiyac olmur. Belə ki, ümumi dəyişən və metodları superclass-a ötürərək varislik konseptindən istifadə edib daha az kod ilə daha geniş siniflər yaratmaq mümkündür. Bu öz növbəsində kodun keyfiyyətini artırır və proqram yaratma prosesini sürətləndirir.
  • 28. Polimorfizm (Polymorphism) • Polimorfizm sözü biologiya elmində bir orqanizmin bir neçə hal və ya şəkil alması mənasını daşıyır. Bu prinsip obyekt yönümlü proqramlaşdırmada da istifadə oluna bilər. Belə ki, sinifin sublass-ı özünün unikal davranış metodlarını təyin edə bilər və bununla yanaşı superclass ilə ümumi xassələri paylaşa bilər. Bu zaman subclass superclass-ın metodlarını override edərək özünə uyğunlaşdırır.
  • 29. Metod overriding Superclass-da təyin edilmiş metodlar (statik olmayan) eyni ad, qəbul etdiyi arqument sayı və tipi eyni olmaqla subclass-da da təyin edilərsə, bu zaman subclass superclass-ın metodunu override etmiş sayılır.
  • 31. Polimorfizm (Polymorphism) Animal sinfinin iki subclass-ını yaradaq: Cat və Dog
  • 32. Polimorfizm (Polymorphism) • Polimorfizm konseptini işlədək Nəticə:
  • 33. Polimorfizmin faydası • Polimorfizmin əsas məqsədi daha az kod ilə daha üstün məhsuldarlıq əldə etməkdir. Yazılan kodun oxşar xassələrə malik bir neçə sinif üçün təkrarlanmadan ümumi yazılmasına nail olmaq.