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

програм хангамжийн чанарын инженерчлэл
програм хангамжийн чанарын инженерчлэл програм хангамжийн чанарын инженерчлэл
програм хангамжийн чанарын инженерчлэл Энхтамир Ш
 
U.cs101 алгоритм программчлал-3
U.cs101   алгоритм программчлал-3U.cs101   алгоритм программчлал-3
U.cs101 алгоритм программчлал-3Badral Khurelbaatar
 
U.cs101 алгоритм программчлал-12
U.cs101   алгоритм программчлал-12U.cs101   алгоритм программчлал-12
U.cs101 алгоритм программчлал-12Badral Khurelbaatar
 
It101 lab11 use case
It101 lab11 use caseIt101 lab11 use case
It101 lab11 use caseBPurev
 
өгөгдлийн сангийн системийн үндэс
өгөгдлийн сангийн системийн үндэсөгөгдлийн сангийн системийн үндэс
өгөгдлийн сангийн системийн үндэсБямбаа Авирмэд
 

What's hot (20)

Sw203 Lecture7 Method Override
Sw203 Lecture7  Method OverrideSw203 Lecture7  Method Override
Sw203 Lecture7 Method Override
 
Lecture3 охп удамшил
Lecture3 охп удамшилLecture3 охп удамшил
Lecture3 охп удамшил
 
Ood lesson4
Ood lesson4Ood lesson4
Ood lesson4
 
Sw203 Lecture5 Class Acess Modifiers
Sw203 Lecture5 Class Acess ModifiersSw203 Lecture5 Class Acess Modifiers
Sw203 Lecture5 Class Acess Modifiers
 
Sw203 Lecture4 Class Object
Sw203 Lecture4  Class ObjectSw203 Lecture4  Class Object
Sw203 Lecture4 Class Object
 
Program hangamjiin tosliin menejment
Program hangamjiin tosliin menejmentProgram hangamjiin tosliin menejment
Program hangamjiin tosliin menejment
 
PL Lecture3
PL Lecture3PL Lecture3
PL Lecture3
 
Java programchlal s.uuganbayr
Java programchlal s.uuganbayrJava programchlal s.uuganbayr
Java programchlal s.uuganbayr
 
Өгөгдлийн бүтэц 8,9
Өгөгдлийн бүтэц 8,9Өгөгдлийн бүтэц 8,9
Өгөгдлийн бүтэц 8,9
 
програм хангамжийн чанарын инженерчлэл
програм хангамжийн чанарын инженерчлэл програм хангамжийн чанарын инженерчлэл
програм хангамжийн чанарын инженерчлэл
 
It101 16
It101 16It101 16
It101 16
 
Лекц 9(Заагч)
Лекц 9(Заагч)Лекц 9(Заагч)
Лекц 9(Заагч)
 
U.cs101 алгоритм программчлал-3
U.cs101   алгоритм программчлал-3U.cs101   алгоритм программчлал-3
U.cs101 алгоритм программчлал-3
 
Лекц 10: (Рекурс)
Лекц 10: (Рекурс)Лекц 10: (Рекурс)
Лекц 10: (Рекурс)
 
Sw203 Lecture11 Casting
Sw203 Lecture11 CastingSw203 Lecture11 Casting
Sw203 Lecture11 Casting
 
U.cs101 алгоритм программчлал-12
U.cs101   алгоритм программчлал-12U.cs101   алгоритм программчлал-12
U.cs101 алгоритм программчлал-12
 
It101 lab11 use case
It101 lab11 use caseIt101 lab11 use case
It101 lab11 use case
 
Лекц №12
Лекц №12Лекц №12
Лекц №12
 
өгөгдлийн сангийн системийн үндэс
өгөгдлийн сангийн системийн үндэсөгөгдлийн сангийн системийн үндэс
өгөгдлийн сангийн системийн үндэс
 
C# hicheelin lekts
C# hicheelin lektsC# hicheelin lekts
C# hicheelin lekts
 

Viewers also liked (20)

Sw203 Lecture12 Composition
Sw203 Lecture12 CompositionSw203 Lecture12 Composition
Sw203 Lecture12 Composition
 
лекц 1
лекц 1лекц 1
лекц 1
 
хүний үүсэл гарал
хүний үүсэл гаралхүний үүсэл гарал
хүний үүсэл гарал
 
Sw203 Lecture8 Interface
Sw203 Lecture8 InterfaceSw203 Lecture8 Interface
Sw203 Lecture8 Interface
 
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
 
Lab6 db
Lab6 dbLab6 db
Lab6 db
 

Similar to Sw203 Lecture10 Polymorphism (16)

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
 
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

More from Jargalsaikhan Alyeksandr (6)

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 Lecture3 Advanced Java Program
Sw203 Lecture3 Advanced Java ProgramSw203 Lecture3 Advanced Java Program
Sw203 Lecture3 Advanced Java Program
 

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.