งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

บทที่ 3 การสืบทอด (Inheritance) และ (Reusable) การนำกลับมาใช้ ใหม่ และการ Overriding method.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "บทที่ 3 การสืบทอด (Inheritance) และ (Reusable) การนำกลับมาใช้ ใหม่ และการ Overriding method."— ใบสำเนางานนำเสนอ:

1 บทที่ 3 การสืบทอด (Inheritance) และ (Reusable) การนำกลับมาใช้ ใหม่ และการ Overriding method

2 คำอธิบายรายวิชา :  แนวคิดพื้นฐานเกี่ยวกับการออกแบบ และพัฒนาโปรแกรมเชิง วัตถุโครงสร้างของภาษาเชิงวัตถุ  เช่น คลาส ออปเจ็ค เมธอด  อินเตอร์เฟส  แพคแกจ  การสืบทอดคลาส  เอนแคปซูเลชั่น  และพอริมอร์ฟิซึม  เอพีไอของภาษาที่ใช้ในการเขียน โปรแกรมเชิงวัตถุ

3 สิ่งที่จะเรียนรู้ใน Week นี้

4 วันนี้จะยังไม่ลงรายละเอียด จะไปเรียนในหัวข้อเรื่อง การปกป้องข้อมูล (Encapsulation)) ระดับการเข้าใช้ class,attribute, method ระดับ ต่าง ๆ public กำหนดให้ class, attribute, method ? ไม่ได้เขียนอะไร กำหนดให้ class,attribute, method ? protected กำหนดให้ attribute, method ? private กำหนดให้ attribute, method?

5 เนื้อหา ตอนที่ 1 การสืบทอด (Inheritance) class แม่ (super class), class ลูก (subclass) รู้จัก keyword “extends” รู้จักคำว่า method Overriding ( การ override เมธอด ) รู้จัก keyword “super” final class,final method

6 การสืบทอด (Inheritance) คืออะไร เป็นคุณสมบัติหนึ่งของ OOP ที่อนุญาต ให้ผู้เขียนโปรแกรมสามารถสร้าง class ใหม่ โดยสืบทอดเอาคุณสมบัติต่าง ๆ มาจาก class ที่มีอยู่แล้ว

7 คลาสแม่ (super class ), คลาสลูก (sup class) คืออะไร “ เมื่อ class หนึ่งสืบทอดคุณสมบัติมาจาก อีก class หนึ่ง ”  เราจะเรียก class ที่ถูกสืบทอดคุณสมบัติไปว่า คลาสแม่ (super class)  และเรียก class ที่สืบทอดคุณสมบัติมาว่า คลาสลูก (sub class) เช่น class A เป็นคลาสแม่ของ class B (class B เป็นคลาสลูกของ class A) คือ class B ทำการสืบทอดคุณสมบัติมาจาก class A

8 Keyword “extends” ใช้ระบุให้กับ class เพื่อกำหนดว่า class นั้น ต้องการสืบทอดคุณสมบัติมาจาก class ใด รูปแบบ [modifier] class ชื่อคลาส extends ชื่อคลาสที่ถูกสืบทอด { } subclass, คลาสลูก superclass, คลาสแม่

9 ข้อแตกต่าง [modifier] class ชื่อคลาส { } [modifier] class ชื่อคลาส extends ชื่อคลาสที่ถูกสืบทอด { }

10 ตัวอย่าง 1 public class Student extends People{ } ชื่อคลาสชื่อคลาสที่ถูกสืบ ทอด อธิบาย  class Student สืบทอดคุณสมบัติมา จาก class People  class Student เป็น sup class ( คลาส ลูก )  class People เป็น super class ( คลาส แม่ )

11 ตัวอย่าง 2 public class Manager extends Employee{ } ชื่อคลาสชื่อคลาสที่ถูกสืบ ทอด อธิบาย  class Manager สืบทอดคุณสมบัติมา จาก class Employee  class Manager เป็น sup class ( คลาส ลูก )  class Employee เป็น super class ( คลาสแม่ )

12 class แม่ สามารถถ่ายทอดอะไร ให้แก่ class ลูก ? ถ่ายทอด attribute, method class ลูกสามารถเรียกใช้งาน attribute และ method ที่สืบ ทอดมา ได้เลย เสมือนถูกสร้างไว้ใน class ลูก เอง  นอกจากนี้ class ลูกสามารถกำหนด attribute,method สร้างเพิ่มเติมเข้า ไปใน class ลูกได้ด้วย  ดังนั้น class ลูกมี attribute และ method ที่ได้รับถ่ายทอดมา และก็มี attribute และ method ที่สร้างขึ้นมา เองเพิ่มเติม

13 Inheritance ( การสืบทอดคุณสมบัติ ) Emp_I D positio n คลาสแม่ (Super Class) “Employee” คลาสลูก (SubClass) “Manager คลาสลูก (SubClass) “SecurityGuard” Emp_I D Positi on Position_CarHout_per_mounth Emp_I D Positi on

14 Inheritance ( การสืบทอดคุณสมบัติ )

15 single inheritance class 1 class สามารถ extends มาจาก class ใดๆ ได้แค่ 1 class ตัวอย่างที่ผิด class A extends B,C{ }

16 ทำไมต้องสืบทอด ? การที่เรานำหลักการของ inheritance มาใช้ ก็เพื่อประหยัดเวลาในการสร้าง class คือ จะ ได้นำสิ่งที่มีอยู่แล้วใน class เดิมมาใช้ได้ เลย โดยที่ไม่ต้องเสียเวลาสร้างใหม่

17 Overriding คืออะไร? คือ “ การแก้ไข method ที่ ได้รับการ ถ่ายทอดมา จาก class แม่ ”

18 อย่างไรถึงเรียกว่า เมธอดถูกทำการ Override 1. เมธอดใน class ลูกมีชื่อเหมือนกับ เมธอดใน class แม่ 2. ค่าที่ถูกส่งกลับออกไป (return type) เป็นข้อมูลชนิดเดียวกัน 3. argument ที่ส่งเข้ามาใน method จำนวนข้อมูลและชนิดข้อมูล เดียวกัน ( เหมือนกัน )

19 ประโยชน์ของการ Overriding จะช่วยให้ class ลูกสามารถแก้ไข หรือเพิ่มเติมการทำงานบางอย่าง ของเมธอดที่ได้รับการถ่ายทอดมา จาก class แม่ กระบวนการนี้เรียกว่า method overriding

20 ตัวอย่าง method จาก class แม่ method ของ class ลูก

21 ตัวอย่าง method จาก class แม่ method ของ class ลูก

22 การแก้ไข ระดับการเข้าใช้ (Access modifier) Access modifier ต้องมากกว่า หรือเท่ากัน private package, default,none protected public มา ก

23 การแก้ไข ระดับการเข้าใช้ (Access modifier) Access modifier ต้องมากกว่า หรือเท่ากัน private package, default,none protected public มา ก

24 รู้จัก keyword “super” เป็น keyword ที่ใช้อ้างอิงถึง member [attribute,method] ของ superclass ของ class นั้น ๆ รูปแบบ super. ชื่อเมธอด ([ อากิวเมนต์ ]); super. ชื่อ attribute;

25  ตัวอย่าง

26 People - name : String + age : int # address :String + setName(n:String ) + getName(): String +setAge(age:int) +getAge():int +setAddress(addr esss:String) +getAddresss():S tring +showData():voi d Student - name : String + age : int # address :String - grade :char + setName(n:Stri ng) + getName(): String +setAge(age:i nt) +getAge():int +setAddress(a :String) +getAddresss( ):String +setGrade(sco re:double) +getGrade():c har +showData() :void Student - grade : char +setGrade(sco re:double) +getGrade():c har + showData(): void extends คลาส แม่ super class คลาส ลูก sub class

27 People - name : String + age : int # address :String + setName(n:String) + getName(): String +setAge(age:int) +getAge():int +setAddress(addre ss:String) +getAddresss():Str ing +showData():void

28 People Student - grade : char +setGrade(sco re:double) +getGrade():c har + showData(): void extends

29 People Student - grade : char +setGrade(sco re:double) +getGrade():c har + showData(): void extends สร้าง class “Test_Student” ขึ้นใหม่เพื่อทดลองเรียกใช้ Class Student name is Peter age is 22 address is Roi ed City grade is D

30 การห้ามสืบทอด class (final class) ถ้าเราไม่ต้องการให้มี class ใดมาสืบทอดคลาสนี้ ได้ สามารถกำหนด keyword final ประกอบกับ การประกาศ class ตัวอย่าง 1. สร้าง class “A” กำหนด final ประกอบกับ การประกาศ class 2. สร้าง class “B” เพื่อทดสอบ extends

31 การปกป้องไม่ให้ override method (final method) ถ้าเราไม่ต้องการให้มี class ที่สืบทอด override เมธอดใดเรา สามารถกำหนด keyword final ประกอบกับการประกาศ method ตัวอย่าง 1. สร้าง class “A” ดังนี้ 2. สร้าง class “B” extends “A” แล้วทดสอบ override getID()

32 ตัวอย่าง กฎของการถ่ายทอด

33 ตัวอย่าง กฎของการถ่ายทอด และ การ Overriding

34 สรุป 1. การสืบทอดในแนวคิดของ OOP ใช้ แนวความคิดเดียวกับการถ่ายทอด คุณลักษณะจากพ่อและแม่ 2. การสืบทอดทำให้เกิดการนำไปใช้ใหม่ได้ (Reusable) 3. เมธอดที่ใช้กับ class แม่ได้ ก็สามารถใช้กับ class ลูกได้ 4. class ลูกสามารถ override เมธอดใน class แม่ได้ 5. ถ้า class ลูกอยู่ต่าง package กับ class แม่, class ลูกสามารถเรียกใช้ เมธอดของ class แม่ได้ในกรณีที่ method กำหนดการเข้าใช้ระดับ public หรือ protected

35 final กำหนดให้กับ class ? กำหนดให้กับ attribute ? กำหนดให้กับ method ?

36 การบ้าน ให้นักศึกษา เขียน โปรแกรม โดยใช้ ทฤษฎี กฎของการ ถ่ายทอด (Inheritance) และการ override เมธอด (overriding)


ดาวน์โหลด ppt บทที่ 3 การสืบทอด (Inheritance) และ (Reusable) การนำกลับมาใช้ ใหม่ และการ Overriding method.

งานนำเสนอที่คล้ายกัน


Ads by Google