ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
บทที่ 3 การสืบทอด (Inheritance)
และ (Reusable) การนำกลับมาใช้ใหม่ และการ Overriding method
2
คำอธิบายรายวิชา : แนวคิดพื้นฐานเกี่ยวกับการออกแบบ และพัฒนาโปรแกรมเชิง
วัตถุโครงสร้างของภาษาเชิงวัตถุ เช่น คลาส ออปเจ็ค เมธอด อินเตอร์เฟส แพคแกจ การสืบทอดคลาส เอนแคปซูเลชั่น และพอริมอร์ฟิซึม เอพีไอของภาษาที่ใช้ในการเขียนโปรแกรมเชิงวัตถุ
3
สิ่งที่จะเรียนรู้ใน Week นี้
4
ระดับการเข้าใช้ class ,attribute, method ระดับ ต่าง ๆ
วันนี้จะยังไม่ลงรายละเอียด จะไปเรียนในหัวข้อเรื่อง การปกป้องข้อมูล (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
[modifier] class ชื่อคลาส extends ชื่อคลาสที่ถูกสืบทอด{
Keyword “extends” ใช้ระบุให้กับ class เพื่อกำหนดว่า class นั้น ต้องการสืบทอดคุณสมบัติมาจาก class ใด รูปแบบ superclass, คลาสแม่ subclass, คลาสลูก [modifier] class ชื่อคลาส extends ชื่อคลาสที่ถูกสืบทอด{ }
9
ข้อแตกต่าง [modifier] class ชื่อคลาส { } [modifier] class ชื่อคลาส extends ชื่อคลาสที่ถูกสืบทอด{ }
10
public class Student extends People{ }
ตัวอย่าง1 ชื่อคลาส ชื่อคลาสที่ถูกสืบทอด public class Student extends People{ } อธิบาย class Student สืบทอดคุณสมบัติมาจาก class People class Student เป็น sup class (คลาสลูก) class People เป็น super class (คลาสแม่)
11
public class Manager extends Employee{ }
ตัวอย่าง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 (การสืบทอดคุณสมบัติ)
คลาสแม่ (Super Class) “Employee” Emp_ID position Emp_ID Position Emp_ID Position Position_Car Hout_per_mounth คลาสลูก (SubClass) “Manager คลาสลูก (SubClass) “SecurityGuard”
14
Inheritance (การสืบทอดคุณสมบัติ)
15
class 1 class สามารถ extends มาจาก class ใดๆ ได้แค่ 1 class
single inheritance class 1 class สามารถ extends มาจาก class ใดๆ ได้แค่ 1 class ตัวอย่างที่ผิด class A extends B,C{ }
16
ทำไมต้องสืบทอด ? การที่เรานำหลักการของ inheritance มาใช้ก็เพื่อประหยัดเวลาในการสร้าง class คือ จะได้นำสิ่งที่มีอยู่แล้วใน class เดิมมาใช้ได้เลย โดยที่ไม่ต้องเสียเวลาสร้างใหม่
17
คือ“การแก้ไข method ที่ได้รับการ ถ่ายทอดมาจาก class แม่”
Overriding คืออะไร? คือ“การแก้ไข method ที่ได้รับการ ถ่ายทอดมาจาก class แม่”
18
อย่างไรถึงเรียกว่า เมธอดถูกทำการ Override
เมธอดใน class ลูกมีชื่อเหมือนกับ เมธอดใน class แม่ ค่าที่ถูกส่งกลับออกไป (return type) เป็นข้อมูลชนิดเดียวกัน argument ที่ส่งเข้ามาใน method จำนวนข้อมูลและชนิดข้อมูลเดียวกัน (เหมือนกัน)
19
ประโยชน์ของการ Overriding
จะช่วยให้ class ลูกสามารถแก้ไขหรือเพิ่มเติมการทำงานบางอย่างของเมธอดที่ได้รับการถ่ายทอดมาจาก class แม่ กระบวนการนี้เรียกว่า method overriding
20
ตัวอย่าง method จาก class แม่ method ของ class ลูก
21
ตัวอย่าง method จาก class แม่ method ของ class ลูก
22
การแก้ไข ระดับการเข้าใช้ (Access modifier)
private package , default ,none protected public มาก
23
การแก้ไข ระดับการเข้าใช้ (Access modifier)
private package , default ,none protected public มาก
24
รู้จัก keyword “super”
เป็น keyword ที่ใช้อ้างอิงถึง member [attribute,method]ของ superclass ของ class นั้น ๆ รูปแบบ super.ชื่อเมธอด([อากิวเมนต์]); super.ชื่อattribute;
25
ตัวอย่าง
26
คลาสแม่ super class คลาสลูก sub class Student - name : String
People - name : String + age : int # address :String + setName(n:String) + getName(): String +setAge(age:int) +getAge():int +setAddress(addresss:String) +getAddresss():String +showData():void Student - name : String + age : int # address :String - grade :char + setName(n:String) + getName(): String +setAge(age:int) +getAge():int +setAddress(a:String) +getAddresss():String +setGrade(score:double) +getGrade():char +showData():void คลาสแม่ super class extends คลาสลูก sub class Student - grade : char +setGrade(score:double) +getGrade():char + showData():void
27
People - name : String + age : int # address :String + setName(n:String) + getName(): String +setAge(age:int) +getAge():int +setAddress(address:String) +getAddresss():String +showData():void
28
+setGrade(score:double) +getGrade():char + showData():void
People Student - grade : char +setGrade(score:double) +getGrade():char + showData():void extends
29
สร้าง class “Test_Student” ขึ้นใหม่เพื่อทดลองเรียกใช้ Class Student
People Student - grade : char +setGrade(score:double) +getGrade():char + showData():void extends 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
สรุป การสืบทอดในแนวคิดของ OOP ใช้แนวความคิดเดียวกับการถ่ายทอดคุณลักษณะจากพ่อและแม่ การสืบทอดทำให้เกิดการนำไปใช้ใหม่ได้ (Reusable) เมธอดที่ใช้กับ class แม่ได้ ก็สามารถใช้กับ class ลูกได้ class ลูกสามารถ override เมธอดใน class แม่ได้ ถ้า class ลูกอยู่ต่าง package กับ class แม่ , class ลูกสามารถเรียกใช้ เมธอดของ class แม่ได้ในกรณีที่ methodกำหนดการเข้าใช้ระดับ public หรือ protected
35
กำหนดให้กับ attribute ? กำหนดให้กับ method ?
final กำหนดให้กับ class ? กำหนดให้กับ attribute ? กำหนดให้กับ method ?
36
การบ้าน ให้นักศึกษา เขียนโปรแกรม โดยใช้ ทฤษฎี กฎของการถ่ายทอด(Inheritance) และการ override เมธอด (overriding)
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.