Page 1
http://www.siam2dev.com [ dr. nattapong songneam]
โดย อ.ดร. นฐพงศ สงเนยมhttp://[email protected]
สาขาวชา สาขาวชาเทคโนโลยสารสนเทศและวทยาการคอมพวเตอร
คณะวทยาศาสตรและเทคโนโลย มหาวทยาลยราชภฏพระนคร
Last Update : 28/11/2560
Lec03_3_Generalization Abstraction
InformationTechnology
Tหากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 2
Abstractions
• Classification abs.• Aggregation abs.• Generalization/Specialization abs.• Association abs.
Page 3
OOP
• Reusable• Polymorphism• Override• Overloading
กน() กน()
Page 4
อ.ดร. นฐพงศ สงเนยม
• Website : http://www.siam2dev.com• Website สาขา: http://it.pnru.ac.th
• E-mail1 : [email protected] • E-mail2 : [email protected] • E-mail3 : [email protected] • Facebook : [email protected]
http://www.siam2dev.com [ dr. nattapong songneam]
Page 5
Lec03_3_Generalization Abstraction
• เพอใหผอานเขาใจหลกการของ Generalization Abstraction และการ Inheritance
• เพอใหผอานเขาใจวตถประสงค กลไก และวธการทา inheritance
• เพอใหผอานสามารถแยกความแตกตางและสรางความสมพนธระหวาง Super class และ Sub class ได
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 6
Generalization Abstraction
• Generalization Abstraction คอกระบวนการในการนา Class ทมลกษณะเหมอนหรอคลายกนหรอมคณสมบตอยางใดอยางหนงรวมกน (General) มาจดหมวดหมไวเปน Class เดยวกน ซงกระบวนการยอนกลบของ Generalization Abstraction เรยกวา Specialization คอการตอบคาถามวาใน Class หนง ๆ นนสามารถจาแนกเปน Class อะไรไดบาง
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 7
Classification Abs.
• เอาวตถ ทมลกษณะเหมอนกน / คลายกน จดใหอยใน
กลมเดยวกน ซงกลมคอ คลาส
ปากกา สแดง ปากกา สนาเงน ปากกา ดามทหนง
TYPEกลมปากกา
Page 8
Generalization
• เอาคลาส ทมลกษณะเหมอนกน / คลายกน จดใหอยในกลมเดยวกน
ซงกลมคอ คลาส
• ตดสวนทแตกตางออก
• พจารณาเฉพาะสวนทเหมอนกน
แมว สนข วว
สตวเลยง
Is kind of
เปนชนดของclass
class
Is member ofIs part ofIs kind of
Page 9
แมว วว
สตวเลยง
Is kind of
เปนชนดของclass
class
Tom คณทองแดง ววสแดง
Is member ofIs member ofIs member of
สนข
Page 10
General & Special
Page 11
รถบรรทกคณสมบต : คณสมบตของรถยนต
+ สามารถบรรทกของได
รถยนตคณสมบต : คณสมบตของรถยนต
+ ใชโดยสาร ม 4 ประต
รถสปอรตคณสมบต : คณสมบตของรถเกง+วงไดเรวกวา + เปดประทนได
ยานพาหนะคณสมบต : มลอ
มเครองยนต
Intensive: ถาเราบอกวารถบรรทก และรถเกง ตางกมลอ และมเครองยนตนนแปลวาสองสงนมลกษณะรวมกนเปนการมองในลกษณะของ Generalization Abstraction
ถาเราเจอสงหนงทมลอ
มเครองยนต เราเรยกวา
เปนยานพาหนะ
มลอ
มเครองยนต
Page 12
Generalization/Specialization
• เตม/เพม >> special• ลดทอน >> general
Page 13
เตมตนตะขาบเขาไป
กลายเปนอกสงหนงเรยก รถตนตะขาบ
เตมตนตะขาบเขาไป
กลายเปนอกสงหนงเรยก รถตนตะขาบ
+ เตมทตกดน / ขดดนเขาไป
เตมตนตะขาบเขาไป
กลายเปนอกสงหนงเรยก รถตนตะขาบ
+ เตมปนใหญ เขาไป กลาย เปน รถถง
Page 14
จงอธบายความหมายของภาพทกาหนดใหในเชงของ Generalization Abstraction
อาจารยคณสมบต : คณสมบตของบคลากร
+ สอน
จนท.คณสมบต : คณสมบตของบคลากร
+ ปฏบตงาน
บคลากรของมหาวทยาลยคณสมบต : มชอ + มสวสดการ+ ทางานภายในมหาวทยาลย
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 15
จงอธบายความหมายของภาพทกาหนดใหในเชงของ Generalization Abstraction
หองตรวจโรคทวไปคณสมบต : ตรวจโรคทวไป
เฉพาะทาง.คณสมบต : ตรวจโณคเฉพาะทาง
หองตรวจโรคคณสมบต : มแพทย และตรวจโรคได
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 16
จงอธบายความหมายของภาพทกาหนดใหในเชงของ Generalization Abstraction
ผปวยภายใน รพ.คณสมบต : คณสมบตของผปวย
+ นอนท รพ.
ผปวยภายนอก รพ.คณสมบต : คณสมบตของผปวย
+ กลบบานได
ผปวยคณสมบต : เปนโรค
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 17
Generalization Abstraction
• ขอสงเกต
– ถาเราคลาสยอย หลายๆ คลาสแลวมคณสมบตรวมกนได แลวทาใหเกดความคดรวบยอดใหม(concept) ได และจดอยในคลาสเดยวกน เรยกวา Generalization Abstraction
– แตถามคณสมบตรวมกน แตไมเกดความคดรวบยอดใหม กไมจาเปนจะตองรวมกนเปนคลาสเดยว
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 18
จากตวอยางทกาหนดใหตอไปน จงพจารณาวาคลาส อะไรสามารถรวมกนได และถารวมกนไดจะไดคลาสอะไร และคลาสใดทรวมกนไมได
1. คน , สตว , พช , ________________2. ผหญง , ผชาย ________________3. คนเสอแดง , คนเสอเหลอง _________________4. แมว , สนข , ไก _________________5. โทรศพทมอถอ , คอมพวเตอร , โทรทศน , ตเยน , หมอหงขาว ______________________________
6. เสอ , กางเกง , ผาขาวมา , หมวก _________________7. โตะ , เกาอ , กระดานดา , อาจารย , นกศกษา
____________________________________
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 19
เพศ
ผหญง ผชาย
*** ไมถกตอง
Page 20
สงมชวต
สตว คน พช
-มชวต
-กน
-หายใจ
Page 21
หองเรยน
นกเรยนโตะ อาจารย
Page 22
บคคล
ผชายผหญง
คน
ผชายผหญง
Page 23
คนไทย
กลมคนเสอเหลองกลมคนเสอแดง
คนไทย ใสเสอ
อยในไทย
Page 24
แพทย
พยาบาลเจาหนาท
บคลากรใน รพ.
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 25
• Aggregate >> ประกอบกน
• Specialization >> แบง/แยกยอย ออกเปน
โตะเตยง
เกาอ
โตะ
หองเรยน
class
class
class
class
Is aNot is a
เกาอ
เฟอรนเจอร
Page 26
อาจารย
อาจารยประจา
อาจารยพเศษ
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 27
นกศกษา
ภาคปกต
ภาค กศ.พบ.
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 28
COMPUTER
MAC
PC
ใช OS เปนเกณฑในการแบง
Page 29
Laptop
DeskTop
+ พกพาได()
+ ใชแบตเตอรร ()
- แบตเตอรร
+ ต งโตะ
- Case
COMPUTER
- ใชพลงงานไฟฟา
- Monitor
ใช portable เปนเกณฑในการแบง
Page 30
จากรปในสไลดกอนหนา
• จงอธบายในเชงของ Generalization Abstractions• จงอธบายในเชงของ Specialization Abstractions• จงอธบายในเชงของ Encapsulation• จงอธบายในเชงของ Information Hiding
Page 31
Specialization abstraction
• จากรปกอนหนาน สามารถอธบายในเชงของ specialization abstraction ไดวา “เราสามารถแบงประเภทของคอมพวเตอรตามลกษณะการใชงานได 2 ประเภทคอ 1. Desktop 2. Laptop ”
Intensiveทง Desktop และ LabTop ตางกเปนเครองใชไฟฟา และ
ประมวลผลได แตตางกนตรงท LabTop สามารถพกพาไปได desktop ไมสะดวกทจะพกพา
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 32
ขอสรป สาหรบ specialization
1. เราพจารณาดวาคลาสหนงๆ แบงออกเปนคลาสยอยอะไรไดบาง2. ในการแบงออกเปนคลาสสามารถทาไดหลายประเภท/วธข นอย
กบวาเราจะใชเกณฑอะไร เปนตวแบง3. ถาแบงแลวมลกษณะพเศษขนมา กควรแบง4. การแบงกคอการเจาะจงลงไป วามลกษณะพเศษอะไรบางจง
เรยกวา special5. การแบงกคอการเอาจดทแตกตางกนของแตละคลาสมาแบง
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 33
Laptop
DeskTop
+ พกพาได()
+ ใชแบตเตอรร ()
- แบตเตอรร
+ ต งโตะ()
- Case
COMPUTER
- ใชพลงงานไฟฟา
- Monitor
ตเยนเปนคอมพวเตอรหรอไม?
ทวเปนคอมพวเตอรหรอไม?
พดลมเปนคอมพวเตอรหรอไม?
Page 34
Laptop
DeskTop
+ พกพาได()
+ ใชแบตเตอรร ()
- แบตเตอรร
+ ต งโตะ()
- Case
COMPUTER
- ใชพลงงานไฟฟา
- Monitor
Page 35
Supper Computer Mainframe Mini
ComputerMicro
Computer
COMPUTER
วธแบงโดยใชขนาดเปนเกณฑ
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 36
จากภาพกอนหนา สามารถอธบายในเชงของ specialization abstraction ไดวา
• อธบายไดวา คอมพวเตอรแบงออกเปน 4 ประเภทคอ SuperComputer , MainFrame , Mini , Micro โดยแบงตามขาด
Intensiveทง 4 ประเภท ตางกเปนคอมพวเตอร ทใชไฟฟาและประมวลผลได แตตางกนตรงท ขนาด
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 37
Generalization/Specialization
จากรปกอนหนานอธบายในเชงของ Generalization Abstraction ไดวา “super computer mainframe mini computer และ micro computer ตางกคณสมบตรวมกนคอ ใช ไฟฟา และ สามารถคานวณไดเราจงจดรวมกนเปนคลาสเดยวกนนนกคอ คลาส Computer” และไดทางกลบกน (Flip side) อธบายในเชงของ specialization abstraction ไดวา “เราสามารถแบงคอมพวเตอรออกเปนประเภทตางๆ ได 4 ประเภทคอ 1. super computer 2. Mainframe 3. Mini coomputer และ 4. Micro Computer”
Page 38
ทพกอาศย = ทซ งมนษยสามารถเขาไปอยอาศยได
อพารตเมนต = ทพกอาศย + มลกษณะเปนหองเดยว
บานทาวนเฮาส = ทพกอาศย + เปนบานทเรยงตดกน
จากรป เปนการอธบาย “ทพกอาศย จาแนกเปน อพารตเมนต และบานทาวนเฮาส” จะเหนวา เราใช Specialize เพอสรางอพารตเมนต และทาวนเฮาสขน ในขณะเดยวกน เราใช Generalize เพอทาใหอพารตเมนต และทาวนเฮาสม Concept รวมเดยวกน นนคอ ทงอพารตเมนตและทาวนเฮาสตางกใชเพอเปนทอยอาศยของมนษย ซงนคอ Concept ของทอยอาศย
คอนโด
Page 39
ทพกอาศย = ทซ งมนษยสามารถเขาไปอยอาศยได
อพารตเมนต = ทพกอาศย + มลกษณะเปนหองเดยว
บานทาวนเฮาส = ทพกอาศย + เปนบานทเรยงตดกน
จากรป เปนการอธบาย “ทพกอาศย จาแนกเปน อพารตเมนต และบานทาวนเฮาส” จะเหนวา เราใช Specialize เพอสรางอพารตเมนต และทาวนเฮาสขน ในขณะเดยวกน เราใช Generalize เพอทาใหอพารตเมนต และทาวนเฮาสม Concept รวมเดยวกน นนคอ ทงอพารตเมนตและทาวนเฮาสตางกใชเพอเปนทอยอาศยของมนษย ซงนคอ Concept ของทอยอาศย
Page 40
COMPUTER
PC MAC
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 41
สตวปกคณสมบต : มปก
มขา 2 ขา
นกคณสมบต : คณสมบตของสตวปก +
บนได
ไกคณสมบต : คณสมบตสตวปก
+ ขนได
ไกชนคณสมบต : คณสมบตไก
+ ขนได + ชนไกได
เครองบนเปนสตวปกหรอไม ?
นกเพนกวนเปนสตวปกหรอไม ?
นกกระจอกเทศเปนสตวปกหรอไม ?
Page 42
สตวปกคณสมบต : มปก
มขา 2 ขา
นกคณสมบต : คณสมบตของสตวปก +
บนได
ไกคณสมบต : คณสมบตสตวปก
+ ขนได
ไกชนคณสมบต : คณสมบตไก
+ ขนได + ชนไกได
เครองบนเปนสตวปกหรอไม ?
นกเพนกวนเปนสตวปกหรอไม ?
นกกระจอกเทศเปนสตวปกหรอไม ?ไกไขคณสมบต : คณสมบตไก + ? + ?
ไกพนธเนอคณสมบต : คณสมบตไก + ? + ?
Page 43
สตวนา- อาศยในนา
ป ปลา- มครบ
???Practice IIจงเขยนความสมพนธของสตวบก ในเชง Generalization และ Specialization
Page 44
ตวอยาง ของการทา Specialize เพ อทาให รถยนต กลายเปนรถสปอรต และการทา Generalize เพ อใหรถสปอรตกลายมาเปนรถยนต
จากรปจะพบวา การทา Specialize เพอทาให รถยนตกลายเปนรถสปอรต ทาไดโดยการเพมเตมสวนของเครองยนต Turbo และความสามารถในการเปดประทนไดเขาสรถยนตปกต และในทางกลบกนการทา Generalize เพอใหรถสปอรตกลายเปนรถยนตกทาไดโดยการเอาเครองยนต Turbo และหลงคาเปดประทนไดออกจากรถสปอรตน นเอง
Spec
ializ
eรถยนต
รถสปอรต = รถยนต + เครองยนต Turbo + เปดประทนได
Page 45
ตวอยางใน C# : สราง Project ใหม
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 46
ตวอยางใน C# : Add Class
Page 47
Has a(require component)
Page 48
Reserved for child class
Page 49
สราง คลาสลก sub class / child class / derive class
Inherit from class car
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 51
สตว
สตวบก สตวครงบกครงนา สตวปกสตวนา
สตวเลอยคลาน สตวนาจด สตวทะเล
สตวเลยงลกดวยนม
คน
ผหญงผชาย
Page 52
ตวอยางท 5.8
องคเจท ดอตเมตรกซGe
nera
lizat
ion
Spec
ializ
atio
n
Gene
raliz
atio
n
Spec
ializ
atio
n
รานคอมพวเตอร
โปรเจคเตอร เครองพมพ
Gene
raliz
atio
n
Spec
ializ
atio
n
เลเซอรคอมพวเตอร
พกพา
คอมพวเตอรตง
โตะ
คอมพวเตอร
Page 53
คน
อาจารยนกศกษา
1
2
Page 54
คน- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
อาจารย- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
เมอเพมรายละเอยดลงไป
Page 57
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 58
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 59
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 60
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 61
ออกแบบหนาจอ เพอรบชอ นามสกล รหส ทอย
txtID txtFullname
txtAddress
btnCancel
btnOK
lbDisplay
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 62
r1
r2
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 63
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 64
จะเหนไดวา คลาสอาจารย สามารถเขาถงหรอเรยกใช attribute / function จากคลาสพอแม หรอคลาส person ไดโดยไมตองมา
สรางใหม
Page 66
ถาเลอกนกศกษา
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 67
คน- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
อาจารย
เมอเพมรายละเอยดลงไป
อาจารยประจาอาจารยพเศษ
Page 68
คน- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา อาจารย
เมอเพมรายละเอยดลงไป
อาจารยประจาอาจารยพเศษ
นศ. ภาคปกตนศ. ภาคพเศษ
Page 69
คน- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา อาจารย
เมอเพมรายละเอยดลงไป
อาจารยประจาอาจารยพเศษ
นศ. ภาคปกตนศ. ภาคพเศษ
นศ. ผชายนศ. ผหญง
Page 70
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 71
คน- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา- รหสประจาตวนกศกษา
- ผลการเรยน
อาจารย- รหสอาจารย
- สาขาวชา
- คณะ
+ตดเกรดได()
+ ลงทะเบยนเรยนได ()
กลไกทมประโยชนของ Inheritance ทาใหเกดReusable
Page 72
แบบฝกหด
Problem Domain 1“โรงพยาบาลแหงหนงมบคลากรอย 4 ประเภทดงน
1. แพทย 2. พยาบาล 3. คนไข 4. เจาหนา”นอกจากน ยงมบรษพยาบาล อกดวย
Problem Domain 2“หากเราจะจาแนกประเภทของพนกงานในบรษทสามารถแบงออกเปนพนกงานเตมเวลา และพนกงานพารทไทม”
จงสรางแผนภาพเพอแสดง Generalization / Specialization จาก Problem Domain ทกาหนดใหตอไปน
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 73
Generalization
• แนวคดตามหลกการเชงวตถ– Generalization จดการ classes ใหอยในรปของ
โครงสรางลาดบช น (class hierarchy) ขนกบsimilarities และ differences
– เราเรยกคลาสทอยในระดบทสงกวาของ classes hierarchy วา “superclasses” และทอยในระดบตากวาวา “subclasses”
– ความสมพนธเปนแบบ “kind-of” relationship
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 74
Inheritance and Polymorphism
• “subclass” รบถายทอดคณสมบต (inherits) อนไดแกattributes, operations และassociations มาจาก“superclass” ของตวเอง
• แตอยางไรกตาม ถา attribute หรอ operation ของ“superclass” ถกกาหนดใหคาใหมใน “subclass” จะเปนการ “overrides” คานยามทกาหนดไวใน“superclass”
• ซงจะนาไปสแนวคดของ polymorphism
Page 75
สตว
- ชอ
+ กน()
การทา Override ทาใหเกด Polymorphism
แมว นก
+ กน() + กน()
คน
+ กน()
Page 76
Superclasses and Subclasses• “Superclass” มคานยาม attributes, operations และ
associations รวมกนกบ “subclasses” ของคลาสน นๆ
• “Subclasses” ม attributes, operations และ associations เฉพาะเปนของตวเอง โดยเลอกทจะกาหนดนยามใหมใหกบ attribute, operation หรอ relationship ทรบมาจาก “superclass” หรอไมกได
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 77
Inheritance – กลไกทเกดจาก Specialization Abstraction
Subclass Superclass และ Inheritance
จากหวขอทผานมา การทา Specialize เกดจาก Class เดม หรอเรยกอกอยางหนงวา Class เร มตน หรอ Superclass หรอ Seed Class(Seed หมายถง เมลดพนธ) และ Class ทเกดจากการทา Specialize น นเรยกวา Subclass ในทาง Object Orientation เราเรยกกระบวนการ Specialization วา Inheritance (มาจาก Inherit หมายถง การถายทอด เชน การถายทอดทางพนธกรรม เปนตน)
*** ขอควรจา ในการทา Inheritance คอ Subclass ท Inherit มาจาก SuperClass น น จะตองมคณสมบตทกอยางของ Superclass (จะขาดคณสมบตใดๆ ของ Superclass ไมได) ผนวกกบคณสมบตพเศษทเพมเขาไปในแตละ Subclass เสมอ
Page 78
ในทาง Object Orientation เราใชสญลกษณลกศรซงหวลกศรเปนรปสามเหลยมใสชจาก Subclass ไปยง Superclass เพอแสดงการทา Inheritance ดงรป
บญชเงนฝากธนาคาร
-ธนาคาร-ชอบญช-อตราดอกเบย#ยอดคงคาง
+ฝาก+ถอน
บญชออมทรพย
+ชาระคาสาธารณปโภค
บญชกระแสรายวน
-คาธรรมเนยม
+ชาระเชครายวน
Page 79
กฎเกณฑของการทา Inheritance
การทา Inheritance นนเปนการถายทอดคณสมบตทกอยางจาก Superclass ไมวาจะเปน Attribute หรอ Function แตมขอควรจาวา Visibility ของ Attributes หรอ Functions นนมความสมพนธกบการทา Inheritance เสมอนนคอ
1. Private Attributes/Functions จะถายทอดมาเปน Private Attributes/Functions ของ Subclass แตสวนท Inherit มาจาก Private Attributes/Functions มายง Subclass จะไมสามารถเขาถงไดโดย Function ทมอยใน Subclass แตไมไดมาจากการ Inherit
2. Protected Attributes/Functions ของ Superclass จะถายทอดมาเปน Protected Attributes/Functions ของ Subclass อนง การเขาถง Attributes และ Functions ของ Subclass ทเกดจากการ Inherit ในกรณนจะทาได โดยผาน Function ใดๆ ของ Subclass นน โดยไมคานงวาจะเปน Function ทไดมาจากการ Inherit หรอไม
Page 80
3. Public Attributes/ Functions จะถายทอดมาเปน Public Attributes/ Functions ของ Subclass เสมอ
บญชเงนฝากธนาคาร
-ธนาคาร-ชอบญช-อตราดอกเบย#ยอดคงคาง
+ฝาก+ถอน
Superclass Subclass
บญชออมทรพย
-ธนาคาร-ชอบญช-อตราดอกเบย#ยอดคงคาง
+ฝาก+ถอน+ชาระคาสาธารณปโภค
บญชกระแสรายวน
-ธนาคาร-ชอบญช-อตราดอกเบย#ยอดคงคาง-คาธรรมเนยม
+ฝาก+ถอน+ชาระคาสาธารณปโภค
Page 83
A Generalization Hierarchy
Geometric_FigureX_PositionY_Position
EllipseMajor_AxisMinor_Axis
CircleRadius
RectangleWidthHeight
Superclass
Subclasses
Page 84
Class Diagrams-inheritance
Page 85
Class diagrams-inheritanceA simple example of inheritance in Java:
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 86
Class diagrams-inheritance
Page 87
Class diagrams-inheritanceClock
- currentTime : Time
+setTime(Time t)
+getTime() : Time
AlarmClock- alarmOn : Boolean
- alarmTime : Time
+ setAlarm(boolean on_off)
กลไกทมประโยชนของ Inheritance ทาใหเกดReusable
+ setAlarmTime(Time t)
Page 88
Class diagrams-inheritance
Page 89
Class diagrams-inheritance
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 90
Inheritance• Class Diagram สามารถแสดงการสบทอดคลาสได
เพอลดความซาซอนในการอธบายขอมล ดงน
Figure 4: Inheritance is indicated by a solid line with a closed, unfilled arrowhead pointing at the super class
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 91
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 92
คน- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
อาจารย- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
Page 93
คน- รหสประจาตวประชาชน
-ชอ-สกล
-ทอย
+บอกชอ-สกลได()
นกศกษา- รหสประจาตวนกศกษา
- ผลการเรยน
อาจารย- รหสอาจารย
-สาขาวชา
-คณะ
+ตดเกรดได()+ ลงทะเบยนเรยนได ()
กลไกทมประโยชนจากการทา Inheritance
Page 94
Single & Multiple Inheritance
• generalizations มกเกดใน class hierarchies ทแตละ “subclass” มเพยง 1 “superclass” เรยกวา “single inheritance”
• แตมบางสถานการณท “subclass” อาจมไดมากกวา 1 “superclass” เรยกวา “multiple inheritance”
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 95
Multiple InheritanceEmployee
GeneralStaff ProfStaff FullTime PartTime
AcademicSubclass withtwo superclasses
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 96
Multiple Inheritance
Vehicle Furniture
Wheelchair
Page 97
Multiple Inheritance การทา Inheritance ยงมกรณทเราทา Inherit จาก Superclass ทมากกวา 1 ตว เพอใหได Subclass ทมคณสมบตพเศษเพยงตวเดยว หรอมากกวา
เครองเลน CD เพลง
-ยหอ-จานวนชองเกบ CD
+เลนเพลง()
เครองเลน Video CD
-ยหอ
+เลน Video()
เครองเลน CD
-ยหอ-จานวนชองเกบ CD
+เลนเพลง()+เลน Video()
Page 98
จากรปจะเหนวา เครองเลน CD ไดดงเอา Attributes จานวนชองเกบ CD และ Functions เลนเพลง จากเครองเลน CD เพลงมาเปน Attributes และ Functions ของตนเอง ในขณะเดยวกนไดดงเอา Functions เลน Video ของเครองเลน Video CD มาเปน Functions หนงของตนเอง ซงทกอยางลวนเปนไปตามกฎของ Inheritance ทงสน แตสงทสนใจกคอ ทงเครองเลน CD เพลง และเครองเลน Video CD ตางกม Attributes ยหอเหมอนกน แลวเครองเลน CD กไมสามารถม Attributes 2 ตวทมช อเหมอนกนได ดงนนทางเลอกกคอ มนตองเลอกทจะเอา Attributes ยหอจาก Class ใด Class หนงเทานน เพอการแกปญหาในการเลอก ในกรณน Subclass ทเกดจาก Multiple Inheritance นน จะเลอกเอา Attributes หรอ Functions ทชอซากนจาก Superclass ทไดทา Inherit กอนเสมอ ซงพจารณาจากรป Subclass ทอยทางซาย จะทา Inherit กอน Superclass ทอยทางขวาเสมอ
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 99
• Polymorphism
การท Subclass ทเกดจากการ Inherit จาก Superclassแตมการดดแปลง Functions บางอยางไมไดยดตาม Superclassทงหมด จะเรยก Class นนมคณสมบต Polymorphism
Polymorphism เปนตวการทจะทาให Subclass ทมFunctions เดยวกนกบ Superclass (หรออกนยหนงคอ Subclass ทม Functions เปนชอเดยวกนกบ Functions ในSuperclass) มการทางานทแตกตางกน
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 100
รถยนต
- ยหอ- รน
+ วงเดนหนา+ วงถอยหลง+ เลยว
รถตนตะขาบ
รถตนตะขาบ
- ยหอ- รน
+ วงเดนหนา+ วงถอยหลง+ เลยว
เลยวโดยวธการใชพวงมาลย
รป ภาพจาลองแสดง Polymorphism
เกด Polymorphism
เลยวโดยวธการหยดลอ
Page 101
เครองบน
- มปกเฮลคอปเตอร
- มใบพด+ บน() + บน()
อากาศยาน
+ บน()
บนไดดวยปก บนไดดวยใบพด
เกด Polymorphism
Page 102
คน
- มขามา
- มขา+ วงได() + วงได()
สงมชวต
+ วงได()
วงไดดวย สอง ขา วงไดดวยสขา
เกด Polymorphism
Page 103
คน
- มขามา
- มขา+ วงได()
+ วงได()
สงมชวต
+ วงได()
วงไดดวย สอง ขา วงไดดวยสขา
เกด Polymorphism
คนพการ
- ขาเทยม
+ วงได()วงไดดวย ขาเทยม
Page 104
class human {private String name;
public void walk() {System.out.println(“Walk with 2 leg”);
}
}
class ab_human {private String name;
public override void walk() {System.out.println(“Walk with artificial 2 leg ”);
}
}
Page 105
Specialization• Specialization เปนกระบวนการยอนกลบของ
generalization แตใหผลเชนเดม แตกตางกนทจดเร มตนเทาน น
• Generalization เปนการคนหาคณลกษณะรวมกน ของ(sub)classes
• Specialization เปนการแยก และคนหาคณลกษณะพเศษของ (super)classes เพอใหได subclasses
Page 106
Generalization and Classification (= is_a?)
1. Shep is a Border Collie.2. A Border Collie is a Dog.3. Dogs are Animals4. A Border Collie is a Breed.5. Dog is a Species
1+2: Shep is a Dog1+2+3: Shep is a animal1+4: Shep is a breed?????2+5: A Border Collie is a Species?????Generalization is transitive (is kind of)Classification is not transitive (is instance of)หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 107
Polymorphism in VB.NETPublic Class Shape
Public Overridable Sub draw()MsgBox("Draw Shape")
End Sub
End ClassPublic Class Rectangle
Inherits ShapePublic Overrides Sub draw()
MsgBox("Draw Rec ")
End SubEnd ClassPublic Class Circle
Inherits RectanglePublic Overrides Sub draw()
MsgBox("Draw Circle ")
End SubEnd Class
-Prefix Overridable before Base Method-Prefix Overrides before derived class
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 108
Polymorphism in VB.NET
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim s As Shape = New Shapes.draw()Dim s1 As Rectangle = New Rectangles1.draw()
Dim s3 As New Circles3.draw()
End Sub
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 109
Polymorphism in VB.NETPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.LoadDim s As Shape = New Shapes.draw()Dim s1 As Rectangle = New Rectangles1.draw()
Dim s3 As New Circles1 = s3
s1.draw()
End Sub
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 110
No polymorphismPublic Class Shape
Public Overridable Sub draw()MsgBox("Draw Shape")
End Sub
End ClassPublic Class Rectangle
Inherits ShapePublic Overrides Sub draw()
MsgBox("Draw Rec ")
End SubEnd ClassPublic Class Circle
Inherits RectanglePublic Overrides Sub draw()
MsgBox("Draw Circle ")
End SubEnd ClassPublic Class Triangle
Inherits ShapePublic Shadows Sub draw()
MsgBox("Draw Circle ")
End SubEnd Class
Dim s As Shape = New Shapes.draw()Dim s1 As Rectangle = New Rectangles1.draw()
Dim s3 As New Circles1 = s3
s1.draw()
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 111
Calling Base MethodPublic Class Shape
Public Overridable Sub draw()MsgBox("Draw Shape")
End Sub
End ClassPublic Class Rectangle
Inherits ShapePublic Overrides Sub draw()
MsgBox("Draw Rec ")
End SubEnd ClassPublic Class Circle
Inherits RectanglePublic Overrides Sub draw()
MsgBox("Draw Circle ")MyBase.draw()
End SubEnd Class
Mybase
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 112
การสบทอดINHERITANCE
(in JAVA)
in java
Page 113
เราจะทราบถงสงทอางองเมอไดทาการสรางวตถแลว แตถาการเขยนสงทอยภายในคลาส ยงไมไดถกสรางเปนวตถ เราจะอางไดอยางไร คาวา “this” เปนวธทชวยใหการอางองตวมนเองโดยยงไมตองสรางวตถกสามารถทาได
• Using this with a Field• Using this with a Constructor
This References
in java
Page 114
public class Point { public int x = 0; public int y = 0; //constructor
public Point(int a, int b){ x = a; y = b;
}}
Using this with a Field
public class Point { public int x = 0; public int y = 0; //constructor
public Point(int x, int y){ this.x = x; this.y = y;
}}
in java
Page 115
public class Rectangle { private int x, y; private int width, height; public Rectangle() {
this(0, 0, 0, 0);} public Rectangle(int width, int height) { this(0, 0, width, height);
} public Rectangle(int x, int y, int width, int height) { this.x = x; this.y = y; this.width = width; this.height = height; } ... }
Using this with a Constructor
in java
Page 116
• Inheritance เปนรปแบบของการนากลบมาใชใหมของซอฟตแวร ซงคลาสใหมจะถกสรางจากการรบสงตางๆจากคลาสทมอย ทงสวน Attribute และสวนของ Method และคลาสใหมยงสามารถเพมเตมความสามารถบางประการตามตองการ
• ดงนนคลาสทถกสรางใหมจะไดรบคณสมบตของคลาสเดมและเพมคณสมบตบางประการ
INHERITANCE
in java
Page 117
INHERITANCE
in java
Page 118
สมมตวาม Class A และเราตองการสราง class B ทไดรบคณลกษณะตางๆ จาก Class A สงทเราตองการตอนสราง class B คอการเพม keyword “extends” เขาไปดงแสดงในรป
รปแบบ
Class B extends A {
//definition of class B}
in java
Page 119
• Class A : parent class/base class/super class• Class B : child class/extended class/sub class
Super class & Sub Class
class A {void printA() {System.out.println(‘A’);}
}class B extends A {
void printB() {System.out.println(‘B’);}}
in javaหากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 120
ซบคลาส (Sub Classes) สบทอดสมาชกทกอยาง(แอตทบวสและเมดธอรด) จากซเปอร Super Class ยกเวน– The private member of Super Class– Constructor of Super Class
การสบทอดจาก Super Class
class InheritTest1 {public static void main(String args[]) {
A x = new A(); x.printA();B y = new B(); y.printA(); y.printB();
}}
in javaหากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 121
ใส final ไวหนา Class ถาไมตองการให Class นนสบทอดได
KEYWORD “final”
class A { int a = 1;}class B extends A { int b = 2; }final class C extends B { int c = 3; }class Inherit2 {
public static void main(String args[]){C z = new C();System.out.println(z.a+z.b+z.c);
}}
in java
Page 122
REFERENCEclass A {int x;}class B extends A {int y;}
a
A a = new A();B b = new B();
XX
Y
b
in java
Page 123
ทดสอบโปรแกรมclass A { int x = 1;}class B extends A { int y = 2; }class Inherit3 {
public static void main(String args[]) {A a = new A();System.out.println(a.x);B b = new B();System.out.println(b.x + “,” + b.y);b.x--;// b = a;a = b;System.out.println(a.x);
}}
in java
Page 124
• เมอมการสราง instance ของคลาสลกขน constructors ของคลาสบรรพบรษทงหมด จะถกทางาน
Constructor Chaining
class A { A() {System.out.println(“A”);} }class B extends A {
B() {System.out.println(“B”);}}class ConstructorChain {
public static void main(String args[]){ new B();}
}
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 125
Y
XX
• ใช keyword วา “super” แทน class ท inherite เพอใชในการอางถง member ของ super class
• ในการอาง super จะหมายถงตว data member ตวแรกทเจอในสายของบรรพบรษ เชน
Super Reference
X X
Y
X
Z
Y
A B extends A C extends B
this.x
super.xthis.xsuper.x
this.Y
super.Yin java
Page 126
Super Referenceclass A {
int a;void print() { System.out.println(a);}
}class B extends A {
int a;B(int x, int y){super.a = x; this.a = y;}void print() {
super.print(); System.out.println(a);}}class Super1{
public static void main(String args[]){B b = new B(1,2);b.print();
}}
in java
Page 127
Super Constructors
class A {A() { System.out.println("A");}A(char c) { System.out.println(c); }
}class B extends A {
B() {//super('a');System.out.println("B");
}}class SuperConstructor {
public static void main(String args[]){new B();}}
in java
Page 128
ถาเรากาหนด data member ในคลาสลกมชอเหมอนกบ
data member ในคลาสแม ชอของลกจะบง(shadow)ชอในคลาสแม
Shadowing
class A {int x = 1;}class B extends A {float x = 2.0f;}class Shadowing {
public static void main(String args[]) {B b = new B();System.out.println(b.x);
}}
X
A B extends A
X X
in java
Page 129
ถาเรากาหนด method ในคลาสลกม signature เหมอนกบ method ในคลาสแม พฤตกรรมของลกจะลบลาง(override)พฤตกรรมในคลาสแม
Overriding
class A {void print() {System.out.println("A");}}class B extends A {
void print() {System.out.println("B");}}class Overriding {
public static void main(String args[]) {new B().print();
}}
print
A B extends A
printprint
in java
Page 130
ทดสอบการสบทอดคณสมบตของคลาสPeople
# name : String# age : int
+ People() : void+ People(String,int) : void+ setName(String) : void+ getName(): String+ setAge(int) : void+ getAge(): int+ doWork(): void+ toString(): String
สญลกษณของ UML(Unified Modeling Language)- private+ public# protected
Student
- gpa : double
+ Student() : void+ Student(String,int,double) : void+ setGPA(double) : void+ getGPA(): double+ doWork(): void+ toString(): String
Teacher
- department : String
+ Teacher() : void+ Teacher(String,int,String) : void+ setDepartment(String) : void+ getDepartment(): String+ doWork(): void+ toString(): String
ประชาชน
นกเรยน อาจารย
in java
Page 131
public class People {protected String name;protected int age;
public People(){this(null,0);
}public People(String n,int a){
name = n;age = a;
}public void setName(String n){
name = n;}public String getName(){
return name;}
Class People
public void setAge(int a){age =a;
}public int getAge(){
return age;}public void doWork(){}public String toString(){
return "Name : " + name + " Age : " +age;}}
ตอ
in java
Page 132
public class Student extends People {private double gpa;public Student(){
this(null,0,0);}public Student(String n,int a,double g){
super(n,a);gpa = g;
}public void setGPA(double g){ gpa = g; }public double getGGA(){ return gpa;}public void doWork(){
System.out.println("Study in school");}public String toString(){
return super.toString()+ " GPA : "+ gpa;}
}
class Student
in java
Page 133
public class Teacher extends People{private String department;public Teacher(){
this(null,0,null);}public Teacher(String n,int a,String dep){super(n,a);department = dep;}public void setDepartment(String dep){department = dep;}public String getDepartment(){return department; }public void doWork(){
System.out.println("Teach in school");}public String toString(){
return super.toString()+ " Department : "+ department;}}
class Teacher
in java
Page 134
public class Demo {
public static void main(String [] args){Student s1 = new Student("Winai",15,3.5);Teacher t1 = new Teacher("Pranee",30,"Science");System.out.println(s1);System.out.println(t1);s1.doWork();t1.doWork();
}}
class Demo ทดสอบการทางาน
in java
Page 135
Polymorphism
With java
in java
Page 136
เปนลกษณะการทางานของ method ชนดหนงทตองอาศยกลไกการทางานของ Inheritance และ Dynamic Binding
method จะสามารถตอบสนองการทางานไดหลายรปแบบขนอยกบ Object ทสงเขามาวาเปนของ class ใด กจะทาตามคาสงทไดเขยนไวใน method ของclass นน
Polymorphism
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 137
อ.รชดาพร คณาวงษ 137
ตวอยางซเปอรคลาสและซบคลาส
• สมมตวาเรามคลาสเรมตนเปน คลาสชอ Shape บอกลกษณะของรปเรขาคณตของวตถ 2 มต
• มคลาส Square บอกลกษณะของสเหลยม และคลาส Triangle บอกลกษณะของสามเหลยม ทสบทอดลกษณะมาจากคลาส Shape
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 138
อ.รชดาพร คณาวงษ 138
inheritance & overridingclass Figure {
double width, height;String name;Figure(double w, double h, String n) {
width = w; height = h; name = n;}public String getName() { return name;}public double getArea() { return 0.0;}public void setWidth(double w) { width = w; }public void setHeight(double h) { height = h;}
}
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 139
อ.รชดาพร คณาวงษ 139
inheritance & overridingclass Rectangle extends Figure {
Rectangle(double w, double h) {super(w,h,”rectangle”);
}double getArea() { return width*height;}
}
class Triangle extends Figure {Triangle(double w, double h) {
super(w,h,”triangle”);}double getArea() { return 0.5*widht*height;}
}
Page 140
อ.รชดาพร คณาวงษ 140
Polymorphismclass PolyEx {
static void compute(Figure x) {System.out.println(x.getName()+” is”);System.out.println(x.getArea());
}public static void main(String args[]){
compute(new Figure(1, 1, “undefined”);compute(new Triangle(1, 1));compute(new Rectangle(1, 1));
}}
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 141
อ.รชดาพร คณาวงษ 141
Polymorphismclass A {void print() { System.out.println(“Im A”); }
}class B1 extends A {void print() { System.out.println(“Im B1”);}
}class B2 extends A {void print() { System.out.println(“Im B2”);}
}class Other {void call(A a) { a.print(); }public static void main(String args[]){call(new A()); call(new B1()); call(new B2());
}}
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 143
คาถามทายบท
1. จงเขยนแผนภาพแสดง Generalization จาก Problem Domain ตอไปน
“Problem Domain 1 เมอเราพดถงฐานะของบคคล เราจะจาแนกฐานะออกเปน 2 สวนคอ ทรพยสน และหนสน โดยทรพยสนจาแนกออกเปน เงนสดและเงนฝากในบญช และเงนในรปแบบอนๆ ซงไดแก หน และหลกทรพย หนส น จาแนกออกเปน หนสนระยะสน และหนสนระยะยาว”
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 144
“Problem Domain 2 งานศลปะแบงออกเปน 3 ประเภทคอ งานจตรกรรม งานประตมากรรม และงานสถาปตยกรรม โดยงานจตรกรรมนน จาแนกเปน ภาพวาด (งานลายเสน งานสนา งานสนามน งานสชอลค และงานสฝ น) และภาพพมพ งานประตมากรรม แบงออกเปน งานปน และงานหลอ สวนงานสถาปตยกรรมนน แบงออกเปน สถาปตยกรรมไทย และสถาปตยกรรมประยกต”
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 145
2. ดวยหลกการ Generalization Abstract ของลกจาง กบหวหนางาน จะเปลยนเปนเชนไร เมอม Class ตอไปนเพ มเขาไป
Class : ลกจางช วคราวAttributes : เงนเดอนFunctions : ปฏบตงาน
ลาพกงาน
Class : บรการระดบสงAttributes : เงนเดอน
ตาแหนง เงนประจา
ตาแหนงFunctions : ปฏบตงาน
ลาพกงาน ส งงาน วางนโยบาย
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]
Page 146
3. จากแผนภาพตอไปน จงตอบคาถามตอไปน
Class A
- Attr1+ Attr2
+ Func1+ Func2+ Func3
Class B
- Attr3# Attr4
+ Func4+ Func5+ Func6
Class C
- Attr5- Attr6
+ Func7+ Func8+ Func9
Class D- Attr7- Func10
Class E- Attr8+ Func11
Class F- Attr9
- Private+ Public# protected
Class E- Attr8
+ Func11
- Func10
Class E
-Attr8
-+ Atr2
-#Attr4
+ Func11
+ Func9- 10
Page 147
3. จากแผนภาพตอไปน จงตอบคาถามตอไปน
Class A
+ Attr1+ Attr2
+ Func1+ Func2+ Func3
Class B
- Attr3- Attr4
- Func4- Func5- Func6
Class C
# Attr5# Attr6
+ Func7- Func8# Func9
Class D# Attr7- Func8
Class E- Attr8+ Func10
Class F- Attr9
Page 148
คาถาม
1. Inside View ของ Class D, Class E, และ Class F เปนอยางไร2. ใน Class D ม Attr1 หรอไม ถาม Attr1 ไดมาจากการ Inherit จาก Class ใด3. ใน Class D ม Attr2 หรอไม ถาม Attr2 ไดมาจากการ Inherit จาก Class ใด4. ใน Class D ม Attr3 หรอไม ถาม Attr3 ไดมาจากการ Inherit จาก Class ใด5. ใน Class D ม Func1 หรอไม ถาม Func1 ไดมาจากการ Inherit จาก Class ใด6. ใน Class D ม Func4 หรอไม ถาม Func4 ไดมาจากการ Inherit จาก Class ใด7. ใน Class D ม Attributes ตวใดบางท Func8 สามารถเขาถงได 8. ใน Class E ม Attributes ตวใดบางท Func9 สามารถเขาถงได 9. ใน Class F ม Func8 หรอไม ถาม ม Attributes ตวใดบางท Func8 สามารถเขาถงได 10. ใน Class F ม Func4 หรอไม ถาม ม Attributes ตวใดบางท Func4 สามารถเขาถงได
หากสนใจ slide นเพอการเรยนการสอนโปรดตดตอ [email protected]