SlideShare a Scribd company logo
1 of 27
Объект хандлагат програмчлалын хэл  Java Хичээл :  CS203 Багш :   Д.Энхжаргал   Mongolia University of Science & Technology Лекц:  Полиморфизм
Полиморфизм гэж юу вэ? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Полиморфизм гэж юу вэ? ,[object Object],[object Object]
Полиморфизм гэж юу вэ? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Java  хэлэнд полиморфизмыг хэрэгжүүлэх арга замууд ,[object Object],[object Object],[object Object]
Java  хэлэнд полиморфизмыг хэрэгжүүлэх арга замууд ,[object Object],[object Object],[object Object],[object Object]
Жишээ: Полиморфизм “ MIAOW” “ BOWWOW” “ PIYOPIYOP” Kei:Master rio : Cat cry() attack() move() hamu : Dog cry() attack() move() ku-chi : Parakeet cry() attack() move() rio.cry() hamu.cry() ku-chi.cry()
Жишээ: Полиморфизм “ MIAOW” “ BOWWOW” “ PIYOPIYOP” Kei:Master “ Маажих” “ Хазах” “ Шүүрэх” rio : Cat cry() attack() move() hamu : Dog cry() attack() move() ku-chi : Parakeet cry() attack() move() rio.attack() hamu.attack() ku-chi.attack()
Жишээ: Полиморфизм “ MIAOW” “ BOWWOW” “ PIYOPIYOP” Kei:Master “ Маажих” “ Хазах” “ Шүүрэх” Ялгаатай объектууд руу ижил мэдээ  дамжуулахад   ялгаатай үр дүнг үзүүлж байна. “ Үсрэх” “ Гүйх ” “ Нисэх” rio : Cat cry() attack() move() hamu : Dog cry() attack() move() ku-chi : Parakeet cry() attack() move() rio.move() hamu.move() ku-chi.move()
Method override &Dynamic binding
[object Object],[object Object],[object Object],Хэрэглээний ач холбогдол
Polymorphism –  Жишээ  ( Хийсвэр функц ) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Polymorphism –  Жишээ  ( Хийсвэр функц ) ,[object Object],[object Object],[object Object],[object Object]
Polymorphism –  Жишээ  ( Хийсвэр функц )
[object Object],[object Object],[object Object],Polymorphism –  Жишээ  ( Хийсвэр функц ) public class  Classroom  { private int buildingNum; private int roomNum; private int floorNum; private int maxCapacity; private int currentCapacity; private boolean computerEquipped; private boolean listeningCenterEquipped; private boolean isChalkedEquipped; private String[] sofware; // ...  Үргэлжлэл нь дараагийн хуудсанд
Polymorphism –  Жишээ  ( Хийсвэр функц ) ,[object Object],// Энд  Accessor and mutator  гишүүн функцууд public int getBuildingNum() { return   buildingNum; } public void setBuildingNum(int buildingNum) { this.buildingNum = buildingNum; } public int getRoomNum() { return roomNum; } public void setRoomNum(int roomNum) {  this.roomNum = roomNum; } public int getFloorNum() { return floorNum; } public void setFloorNum(int floorNum) { this.floorNum = floorNum; } public int getMaxCapacity() { return maxCapacity; } public void setMaxCapacity(int maxCapacity) { this.maxCapacity = maxCapacity; } // ...  Үргэлжлэл нь дараагийн хуудсанд
[object Object],Polymorphism –  Жишээ  ( Хийсвэр функц ) // ...  Өмнөх хуудсын үргэлжлэл public int getCurrentCapacity() {  return currentCapacity; } public void setCurrentCapacity(int   currentCapacity)  { this.currentCapacity = currentCapacity; } public boolean isComputerEquipped() { return  computerEquipped; } public void setComputerEquipped(boolean     computerEquipped) {    this.computerEquipped = computerEquipped; } // ...  Үргэлжлэл нь дараагийн хуудсанд
[object Object],Polymorphism –  Жишээ  ( Хийсвэр функц ) // ...  Өмнөх хуудсын үргэлжлэл   public boolean isListeningCenterEquipped() { return listeningCenterEquipped; } public void setListeningCenterEquipped(boolean listeningCenterEquipped) {  this.listeningCenterEquipped = listeningCenterEquipped; } public boolean isChalkedEquipped() { return isChalkedEquipped; } public void setChalkedEquipped(boolean chalkedEquipped) {  this.isChalkedEquipped = chalkedEquipped; } public String[] getSofware() { return sofware; } public void setSofware(String[] sofware) { this.sofware = sofware; }
[object Object],Polymorphism –  Жишээ  ( Хийсвэр функц ) // ...  Өмнөх хуудсын үргэлжлэл   public String[] getSofware() { return sofware; } public void setSofware(String[] sofware) {   this.sofware = sofware; } public boolean hasSoftware(String  softwareCategory) { if (sofware == null || sofware.length < 1 ||   !computerEquipped) { return false; }  for (int i = 0; i < sofware.length; i++) { String swCategory = sofware[i]; if (swCategory.equals(softwareCategory)) {   return true; } } return false; } }
Polymorphism –  Жишээ  ( Хийсвэр функц ) ,[object Object]
Polymorphism –  Жишээ  ( Хийсвэр функц ) public  abstract  class Course { private String code; private String name; private int credit; private Teacher teacher; public Course(String id, String name, int credit) { this.code = id; this.name = name; this.credit = credit; } public int getCredit() { return credit; } public String getCode() { return code; } public String getName() { return name; } public Teacher getTeacher() { return teacher; } public void setTeacher(Teacher teacher) {  this.teacher = teacher; } public abstract boolean isSuitable(Classroom classroom); } Одоо түүний хүү классууд энэхүү  хийсвэр функцыг  өөр өөрийнхөө онцлогт тохируулан хэрэгжүүлэх боломжтой isSuitable   гэсэн  хийсвэр функц  тодорхойлов
Polymorphism –  Жишээ  ( Хийсвэр функц ) public class  MathCourse  extends Course { public MathCourse(String id, String name, int credit)  {  super(id, name, credit);  } public boolean isSuitable(Classroom classroom) {  ... } } public class  Seminar  extends AccompanyingSession { public Seminar(LeadingLecture lecture, String id, String name)   {  super(lecture, id, name);  } public boolean isSuitable(Classroom classroom) { ... } } public class  Laboratory  extends AccompanyingSession { public Laboratory(LeadingLecture lecture,String id,String   name)   {  super(lecture, id, name);  } public boolean isSuitable(Classroom classroom) {  ...   } } isSuitable   гэсэн  хийсвэр функц  ын ялгаатай хэрэгжилтүүд
Polymorphism –  Жишээ  ( Хийсвэр функц ) public class  MathCourse  extends Course { //  Байгуулагч функц public boolean isSuitable(Classroom classroom) { return classroom.isChalkedEquipped() &&  classroom.getMaxCapacity() > 15;  } } public class  Seminar  extends AccompanyingSession { //  Байгуулагч функц public boolean isSuitable(Classroom classroom) { return classroom.getMaxCapacity() > 15 &&  classroom.isChalkedEquipped();  } } public class  Laboratory  extendsAccompanyingSession{ //  Байгуулагч функц public boolean isSuitable(Classroom classroom) { return getLecture().isSuitable(classroom); } } isSuitable   гэсэн  хийсвэр функц  ын ялгаатай хэрэгжилтүүд
Polymorphism –  Жишээ  ( Хийсвэр функц ) public class  ProgrammingCourse  extends LeadingLecture { public ProgrammingCourse(String id, String name, int credit){   super(id, name, credit);   this.sessions = new AccompanyingSession[1];   this.sessions[0] = new Laboratory(this, id,    name + &quot; Laboratory&quot;);   } public boolean isSuitable(Classroom classroom) { return classroom.isComputerEquipped() && classroom.hasSoftware(&quot;Programming&quot;) && classroom.getMaxCapacity() > 15; } }
Polymorphism –  Жишээ  ( Хийсвэр функц ) public class  LanguageCourse  extends LeadingLecture { public LanguageCourse(String id,   String name,int credit) {  super(id, name, credit); this.sessions = new AccompanyingSession[2]; this.sessions[0] = new Seminar(this, id, name + &quot; Seminar I&quot;); this.sessions[1] = new Seminar(this, id, name + &quot; Seminar II&quot;); } public boolean isSuitable(Classroom classroom) { return classroom.getMaxCapacity() > 15 && classroom.isListeningCenterEquipped(); } }
[object Object],[object Object],[object Object],Polymorphism –  Жишээ  ( Хийсвэр функц )
[object Object],[object Object],[object Object],Polymorphism –  Жишээ  ( Хийсвэр функц )

More Related Content

What's hot (20)

C cons
C consC cons
C cons
 
Sw203 Lecture9 Encapsulation
Sw203 Lecture9  EncapsulationSw203 Lecture9  Encapsulation
Sw203 Lecture9 Encapsulation
 
U.cs101 алгоритм программчлал-3
U.cs101   алгоритм программчлал-3U.cs101   алгоритм программчлал-3
U.cs101 алгоритм программчлал-3
 
Tutorial of python
Tutorial of pythonTutorial of python
Tutorial of python
 
U.cs101 алгоритм программчлал-2
U.cs101   алгоритм программчлал-2U.cs101   алгоритм программчлал-2
U.cs101 алгоритм программчлал-2
 
Small basic үзүүлэн
Small basic үзүүлэнSmall basic үзүүлэн
Small basic үзүүлэн
 
U.cs101 алгоритм программчлал-10
U.cs101   алгоритм программчлал-10U.cs101   алгоритм программчлал-10
U.cs101 алгоритм программчлал-10
 
Жава хэлний сурах бичиг Java helnii surah bichig Mongol
Жава хэлний сурах бичиг Java helnii surah bichig MongolЖава хэлний сурах бичиг Java helnii surah bichig Mongol
Жава хэлний сурах бичиг Java helnii surah bichig Mongol
 
C# hicheelin lekts
C# hicheelin lektsC# hicheelin lekts
C# hicheelin lekts
 
Лекц-3
Лекц-3Лекц-3
Лекц-3
 
Lec3 c++operator
Lec3 c++operatorLec3 c++operator
Lec3 c++operator
 
давталттай алгоритм
давталттай алгоритмдавталттай алгоритм
давталттай алгоритм
 
Салаалсан алгоритмын бодлогууд
Салаалсан алгоритмын бодлогуудСалаалсан алгоритмын бодлогууд
Салаалсан алгоритмын бодлогууд
 
5 algorithm
5 algorithm5 algorithm
5 algorithm
 
Лекц №6
Лекц №6Лекц №6
Лекц №6
 
Lec8 break
Lec8 breakLec8 break
Lec8 break
 
Java xelnii surax_bichig
Java xelnii surax_bichigJava xelnii surax_bichig
Java xelnii surax_bichig
 
C++
C++C++
C++
 
Лекц 9(Заагч)
Лекц 9(Заагч)Лекц 9(Заагч)
Лекц 9(Заагч)
 
U.cs101 lecture 6
U.cs101   lecture 6U.cs101   lecture 6
U.cs101 lecture 6
 

Viewers also liked (20)

Sw203 Lecture12 Composition
Sw203 Lecture12 CompositionSw203 Lecture12 Composition
Sw203 Lecture12 Composition
 
лекц 1
лекц 1лекц 1
лекц 1
 
хүний үүсэл гарал
хүний үүсэл гаралхүний үүсэл гарал
хүний үүсэл гарал
 
Sw203 Lecture4 Class Object
Sw203 Lecture4  Class ObjectSw203 Lecture4  Class Object
Sw203 Lecture4 Class Object
 
Sw203 Lecture5 Class Acess Modifiers
Sw203 Lecture5 Class Acess ModifiersSw203 Lecture5 Class Acess Modifiers
Sw203 Lecture5 Class Acess Modifiers
 
11a 1хүний үүсэл гарал ба хөгжил
11a   1хүний үүсэл гарал ба хөгжил11a   1хүний үүсэл гарал ба хөгжил
11a 1хүний үүсэл гарал ба хөгжил
 
онолын түүх
онолын түүхонолын түүх
онолын түүх
 
үзүүлэн хичээл 9 21..
үзүүлэн хичээл 9 21..үзүүлэн хичээл 9 21..
үзүүлэн хичээл 9 21..
 
Java lecture5
Java lecture5Java lecture5
Java lecture5
 
хүний үүсэл
хүний үүсэлхүний үүсэл
хүний үүсэл
 
Presentation1
Presentation1Presentation1
Presentation1
 
Cs203 lab8
Cs203 lab8Cs203 lab8
Cs203 lab8
 
Sw203lab5
Sw203lab5Sw203lab5
Sw203lab5
 
Sw203lab6
Sw203lab6Sw203lab6
Sw203lab6
 
Lab5
Lab5Lab5
Lab5
 
Lab10 11
Lab10 11Lab10 11
Lab10 11
 
Lab 12
Lab 12Lab 12
Lab 12
 
Video lab1-web
Video lab1-webVideo lab1-web
Video lab1-web
 
Lab7
Lab7Lab7
Lab7
 
Laboratory 14
Laboratory 14Laboratory 14
Laboratory 14
 

Similar to Sw203 Lecture10 Polymorphism (15)

Cs203 lecture 14 reflection
Cs203 lecture 14  reflectionCs203 lecture 14  reflection
Cs203 lecture 14 reflection
 
Sw203 Lab7
Sw203 Lab7Sw203 Lab7
Sw203 Lab7
 
SW203 Lab9
SW203  Lab9SW203  Lab9
SW203 Lab9
 
Pl lecture7
Pl lecture7Pl lecture7
Pl lecture7
 
Ood lesson12.1 ---------
Ood lesson12.1  ---------Ood lesson12.1  ---------
Ood lesson12.1 ---------
 
Лекц 6 - 7
Лекц 6 - 7Лекц 6 - 7
Лекц 6 - 7
 
Lecture4
Lecture4Lecture4
Lecture4
 
Ood lesson5
Ood lesson5Ood lesson5
Ood lesson5
 
Lecture3 4
Lecture3 4Lecture3 4
Lecture3 4
 
Java lecture4
Java lecture4Java lecture4
Java lecture4
 
объект хандлагат программчлал
объект хандлагат программчлалобъект хандлагат программчлал
объект хандлагат программчлал
 
Cs203 lecture13 composition
Cs203 lecture13 compositionCs203 lecture13 composition
Cs203 lecture13 composition
 
Java laboratoriin udirdamj 2
 Java laboratoriin udirdamj 2 Java laboratoriin udirdamj 2
Java laboratoriin udirdamj 2
 
Lecture8 9
Lecture8 9Lecture8 9
Lecture8 9
 
S W203 Lecture8 Interface
S W203  Lecture8  InterfaceS W203  Lecture8  Interface
S W203 Lecture8 Interface
 

More from Jargalsaikhan Alyeksandr (9)

Database design & Normalization (1NF, 2NF, 3NF)
Database design & Normalization (1NF, 2NF, 3NF)Database design & Normalization (1NF, 2NF, 3NF)
Database design & Normalization (1NF, 2NF, 3NF)
 
Microsoft IT Academy
Microsoft IT AcademyMicrosoft IT Academy
Microsoft IT Academy
 
Computer ethics and system security
Computer ethics and system securityComputer ethics and system security
Computer ethics and system security
 
SW203 Lab10
SW203  Lab10SW203  Lab10
SW203 Lab10
 
Sw203lab8
Sw203lab8Sw203lab8
Sw203lab8
 
Sw203 Lecture11 Casting
Sw203 Lecture11 CastingSw203 Lecture11 Casting
Sw203 Lecture11 Casting
 
Sw203 Lecture7 Method Override
Sw203 Lecture7  Method OverrideSw203 Lecture7  Method Override
Sw203 Lecture7 Method Override
 
Sw203 Lecture3 Advanced Java Program
Sw203 Lecture3 Advanced Java ProgramSw203 Lecture3 Advanced Java Program
Sw203 Lecture3 Advanced Java Program
 
CS203 Лекц01 Prefeace
CS203 Лекц01  PrefeaceCS203 Лекц01  Prefeace
CS203 Лекц01 Prefeace
 

Sw203 Lecture10 Polymorphism

  • 1. Объект хандлагат програмчлалын хэл Java Хичээл : CS203 Багш : Д.Энхжаргал Mongolia University of Science & Technology Лекц: Полиморфизм
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7. Жишээ: Полиморфизм “ MIAOW” “ BOWWOW” “ PIYOPIYOP” Kei:Master rio : Cat cry() attack() move() hamu : Dog cry() attack() move() ku-chi : Parakeet cry() attack() move() rio.cry() hamu.cry() ku-chi.cry()
  • 8. Жишээ: Полиморфизм “ MIAOW” “ BOWWOW” “ PIYOPIYOP” Kei:Master “ Маажих” “ Хазах” “ Шүүрэх” rio : Cat cry() attack() move() hamu : Dog cry() attack() move() ku-chi : Parakeet cry() attack() move() rio.attack() hamu.attack() ku-chi.attack()
  • 9. Жишээ: Полиморфизм “ MIAOW” “ BOWWOW” “ PIYOPIYOP” Kei:Master “ Маажих” “ Хазах” “ Шүүрэх” Ялгаатай объектууд руу ижил мэдээ дамжуулахад ялгаатай үр дүнг үзүүлж байна. “ Үсрэх” “ Гүйх ” “ Нисэх” rio : Cat cry() attack() move() hamu : Dog cry() attack() move() ku-chi : Parakeet cry() attack() move() rio.move() hamu.move() ku-chi.move()
  • 11.
  • 12.
  • 13.
  • 14. Polymorphism – Жишээ ( Хийсвэр функц )
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21. Polymorphism – Жишээ ( Хийсвэр функц ) public abstract class Course { private String code; private String name; private int credit; private Teacher teacher; public Course(String id, String name, int credit) { this.code = id; this.name = name; this.credit = credit; } public int getCredit() { return credit; } public String getCode() { return code; } public String getName() { return name; } public Teacher getTeacher() { return teacher; } public void setTeacher(Teacher teacher) { this.teacher = teacher; } public abstract boolean isSuitable(Classroom classroom); } Одоо түүний хүү классууд энэхүү хийсвэр функцыг өөр өөрийнхөө онцлогт тохируулан хэрэгжүүлэх боломжтой isSuitable гэсэн хийсвэр функц тодорхойлов
  • 22. Polymorphism – Жишээ ( Хийсвэр функц ) public class MathCourse extends Course { public MathCourse(String id, String name, int credit) { super(id, name, credit); } public boolean isSuitable(Classroom classroom) { ... } } public class Seminar extends AccompanyingSession { public Seminar(LeadingLecture lecture, String id, String name) { super(lecture, id, name); } public boolean isSuitable(Classroom classroom) { ... } } public class Laboratory extends AccompanyingSession { public Laboratory(LeadingLecture lecture,String id,String name) { super(lecture, id, name); } public boolean isSuitable(Classroom classroom) { ... } } isSuitable гэсэн хийсвэр функц ын ялгаатай хэрэгжилтүүд
  • 23. Polymorphism – Жишээ ( Хийсвэр функц ) public class MathCourse extends Course { // Байгуулагч функц public boolean isSuitable(Classroom classroom) { return classroom.isChalkedEquipped() && classroom.getMaxCapacity() > 15; } } public class Seminar extends AccompanyingSession { // Байгуулагч функц public boolean isSuitable(Classroom classroom) { return classroom.getMaxCapacity() > 15 && classroom.isChalkedEquipped(); } } public class Laboratory extendsAccompanyingSession{ // Байгуулагч функц public boolean isSuitable(Classroom classroom) { return getLecture().isSuitable(classroom); } } isSuitable гэсэн хийсвэр функц ын ялгаатай хэрэгжилтүүд
  • 24. Polymorphism – Жишээ ( Хийсвэр функц ) public class ProgrammingCourse extends LeadingLecture { public ProgrammingCourse(String id, String name, int credit){ super(id, name, credit); this.sessions = new AccompanyingSession[1]; this.sessions[0] = new Laboratory(this, id, name + &quot; Laboratory&quot;); } public boolean isSuitable(Classroom classroom) { return classroom.isComputerEquipped() && classroom.hasSoftware(&quot;Programming&quot;) && classroom.getMaxCapacity() > 15; } }
  • 25. Polymorphism – Жишээ ( Хийсвэр функц ) public class LanguageCourse extends LeadingLecture { public LanguageCourse(String id, String name,int credit) { super(id, name, credit); this.sessions = new AccompanyingSession[2]; this.sessions[0] = new Seminar(this, id, name + &quot; Seminar I&quot;); this.sessions[1] = new Seminar(this, id, name + &quot; Seminar II&quot;); } public boolean isSuitable(Classroom classroom) { return classroom.getMaxCapacity() > 15 && classroom.isListeningCenterEquipped(); } }
  • 26.
  • 27.