SlideShare a Scribd company logo
Inheritance and Method Overriding
อาจารย์สมเกียรติ ช่อเหมือน
สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี
(tkorinp@hotmail.com)
Inheritance and Method Overriding
• แนวคิดที่สำคัญของกำรสืบทอด (Inheritance)
– เข้ำใจวิธีกำรใช้คลำสนำมธรรมเพื่อสะท้อนคุณลักษณะทั่วไป
– ใช้ UML แสดงกำรสืบทอด
• กำรทำ method Overriding
– กำรแทนที่เมธอด
• ควำมเหมำะสมในกำรใช้ “Super”
– Implement ในภำษำ Java
Object Oriented Programming using Java
1) Object Families
2) Generalisation and Specialisation
3) Inheritance
4) Implementing Inheritance in Java
5) Constructors
6) Constructor Rules
7) Access Control
8) Abstract Classes
9) Overriding Methods
10) The ‘Object’ Class
11) Overriding toString() defined in ‘Object’
Object Families
• สิ่งมีชีวิตบนโลกมีควำมเกี่ยวข้องกัน แบบครอบครัว แนวคิดกำรส่ง
ต่อ มรดก ไปยังลูกหลำนของ พ่อแม่ เป็นแนวคิดที่สำคัญของ
หลักกำร OOP
• ปกติกำรใช้ constructors and access control
(public/private)
• ปัญหำเฉพำะที่เกี่ยวข้องกับกำรสืบทอด คือ กำรพิจำรณำคลำส
แบบนำมธรรมและเมธอดที่สำคัญในกำรสืบทอด
Generalisation and Specialisation
• Class เป็นรูปแบบในกำรพิจำรณำรำยละเอียดและสร้ำงวัตถุที่
แตกต่ำงกัน
– เช่นนักศึกษำรหัส 594602001 เป็นตัวอย่ำงของนักศึกษำ
– รหัส 594602001 คือนักศึกษำ
• Class สำมำรถหำควำมสัมพันธ์ที่คล้ำยกัน เพื่อจัดกลุ่มและลำดับชั้น
• ตัวอย่ำงเช่น อำณำจักรสัตว์ทำงชีววิทยำ
กำรจำแนกสิ่งของตำมเกณฑ์
Inheritance
• กำรระบุลักษณะทั่วไปไว้ด้ำนบนของลำดับชั้นและเฉพำะเจำะจง
มำกขึ้นในลำดับถัดไป ตำมหลักกำรเชิงวัตถุ (generalization and
specialization)
• ลักษณะด้ำนบนจะถูกถ่ำยทอดให้ Class หรือ Object ในลำดับ
ถัดไปแบบอัตโนมัติ เรียกว่ำ “inheritance”
• ตัวอย่ำงเช่น เมื่อพิจำรณำสิ่งพิมพ์ทั้งสองประเภท คือ หนังสือและ
นิตยสำร
– UML Class
Inheritance
• วิเครำะห์สิ่งที่เหมือนและต่ำงกัน สำมำรถรวมกันได้เป็น
• สำมำรถสืบทอดเป็นBook และ Magazine
Inheritance
Implementing Inheritance in Java
• Superclass เป็นคลำสที่มีคุณสมบัติพื้นฐำน
• Subclass สำมำรถระบุกำรสืบทอดคุณสมบัติจำก superclass
– โดยใช้คำหลัก extends
• ตัวอย่ำงเช่น
class MySubclass extends MySuperclass
{
// additional instance variables and
// additional methods
}
Constructors
• แต่ละClass (ไม่ว่ำจะSub หรือ Super)
– ควรมีกำรห่อหุ้ม
– มีกำรกำหนดเริ่มต้นของตัวแปร กำรตั้งค่ำที่เกี่ยวข้องกับสถำนะ
• Constructors ใช้สำหรับกำหนดค่ำเริ่มต้นทั่วไปของ Class
• Subclass สำมำรถมีคอนสตรัคเตอร์ของตัวเองสำหรับกำหนดค่ำเริ่มต้น
• แต่หำกต้องกำรใช้ค่ำเริ่มต้นของ Superclass ต้องใช้คำหลัก “super”
Class MySubClass extends MySuperClass
{
public MySubClass (sub-parameters)
{
super(super-parameters);
// other initialization
}
Constructors
• ในกำรสร้ำง Class โดยกำรเรียกใช้ Constructors ถือเป็นคำสั่งแรก
• พำรำมิเตอร์ที่ส่งผ่ำนไปยังSubclass
public Publication (String pTitle, double pPrice, int pCopies)
{
title = pTitle;
// etc.
}
public Book (String pTitle, String pAuthor, double pPrice,
int pCopies)
{
super(pTitle, pPrice, pCopies);
author = pAuthor;
//etc.
}
Constructor Rules
• หำก superclass มี parameterless (หรือเริ่มต้น) คอนสตรัคเตอร์นี้จะ
ถูกเรียกโดยอัตโนมัติ
• หำกไม่มีกำรเรียกใช้อย่ำงชัดเจนกับซูเปอร์จะต้องสร้ำง constructor ของ
subclass
Access Control
• กำรใช้ protected เพื่อให้เข้ำถึงได้จำก Subclass
• กำรสร้ำงเมธอดในกำรเข้ำถึงและปรับเปลี่ยนค่ำ
private int copies;
public int getCopies ()
{
return copies;
}
public void setCopies(int pCopies)
{
copies = pCopies;
}
วิธีกำรเหล่ำนี้ช่วยให้ superclass ควบคุมกำรเข้ำถึงตัวแปรแบบ Private
// in Book
public void orderCopies(int pCopies)
{
setCopies(getCopies() + pCopies);
}
// and in Magazine
public void recvNewIssue(String pNewIssue)
{
setCopies(orderQty);
currIssue = pNewIssue;
}
Abstract Classes
• แนวคิดในกำรสร้ำงคลำสที่ร่ำงขึ้น และป้องกันกำรสร้ำงวัตถุจำกคลำส
ประเภทนี้
• กำรรวบรวมคุณลักษณะทั่วไป สำหรับสืบทอดไปเป็น Subclass
• โดยประกำศ “abstract”
abstract class SuperClassName
{
// etc.
}
Overriding Methods
• Subclass สำมำรถสืบทอดเมธอดของ Superclass ได้
• แต่สำมำรถเปลี่ยนแปลงกำรกำรทำงำนของเมธอดไปจำก Superclass
• เรำเรียกว่ำ “overriding method”
• ซึ่งเป็นคุณสมบัติหนึ่งของกำรสืบทอด (inherited)
• สำมำรถปรับปรุงเมธอดและทำให้เมธอดเหมำะสมกับ
Subclass ยิ่งขึ้น public class DiscMag extends Magazine
{ // the constructor
public DiscMag (String pTitle, double pPrice, int pOrderQt, String pCurrIssue, int pCopies)
{
super(pTitle, pPrice, pOrderQty, pCurrIssue, pCopies);
}
// the overridden method
public void recvNewIssue(String pNewIssue)
{
super.recvNewIssue(pNewIssue);
System.out.println("Check discs attached to this
magazine");
}
}
The ‘Object’ Class
• Object หรือวัตถุ เป็นเสมือนตัวแทนของทุกอย่ำงในคลำสที่กำหนดขึ้น
• โดยเป็นส่วนบนสุดในกำรเข้ำถึงสิ่งต่ำง ๆ ที่อยู่ภำยใน
• ประกำศ เพื่อใช้งำน object จำก Class
• “new” เพื่อกำหนดค่ำเริ่มต้นจำก Class ให้กับ object
Overriding toString() defined in ‘Object’
Summary
• Inheritance ช่วยให้สะท้อนคุณสมบัติทั่วไปและพฤติกรรม โดยจำลองไว้ใน
superclass
• subclass ถูกนำมำใช้ในกำรจำลองคุณลักษณะเฉพำะและพฤติกรรม
• code ที่เขียนใน superclass สืบทอดไปยัง subclasses ทั้งหมด ถ้ำต้องกำร
แก้ไขหรือปรับปรุง code สำมำรถปรับที่ superclass จะส่งผลกระทบต่อ
subclasses ทั้งหมด ช่วยลดกำรเขียนCode ในโปรแกรม
• constructors ที่สำมำรถนำไปใช้กับ Subclass
• superclass สำมำรถกำหนดเป็น Abstract เพื่อป้องกันกำรสร้ำงวัตถุ
• สำมำรถทำ override เพื่อปรับปรุงเมธอดให้สอดคล้องกับ Subclass
• ใน Java ทุกคลำสสืบทอดมำจำก Class “Object”
• Object เป็นกำรกำหนดกำรดำเนินกำรแบบสำกล เป็นตัวแทนในกำรใช้
ประโยชน์จำกคลำสที่กำหนด

More Related Content

Viewers also liked

Presentacion sobre pedagogía compleja
Presentacion sobre pedagogía complejaPresentacion sobre pedagogía compleja
Presentacion sobre pedagogía compleja
Jesus Sanchez
 
Polymorphism (2)
Polymorphism (2)Polymorphism (2)
Inheritance question class 12th
Inheritance question class 12thInheritance question class 12th
Inheritance question class 12th
AAKASH KUMAR
 
介紹馬祖
介紹馬祖介紹馬祖
介紹馬祖
Andy Fang
 
Importancia de la programaciã³n en la electronica
Importancia de la programaciã³n en la electronica Importancia de la programaciã³n en la electronica
Importancia de la programaciã³n en la electronica
Ysidro Jose Araujo Viloria
 
Introduction to method overloading & method overriding in java hdm
Introduction to method overloading & method overriding  in java  hdmIntroduction to method overloading & method overriding  in java  hdm
Introduction to method overloading & method overriding in java hdm
Harshal Misalkar
 
Mi primer semillero
Mi primer semilleroMi primer semillero
Mi primer semillero
ceipcristorey Jimena
 
CTMS for your site's financial activities
CTMS for your site's financial activitiesCTMS for your site's financial activities
CTMS for your site's financial activities
TrialJoin
 
Spring Equinox 2010: A Walk In The Park (Boston Common)
Spring Equinox 2010: A Walk In The Park (Boston Common)Spring Equinox 2010: A Walk In The Park (Boston Common)
Spring Equinox 2010: A Walk In The Park (Boston Common)
Toscana Enterprises Corporation
 
Escape room
Escape roomEscape room
itft-Inheritance in java
itft-Inheritance in javaitft-Inheritance in java
itft-Inheritance in java
Atul Sehdev
 
OOP Inheritance
OOP InheritanceOOP Inheritance
OOP Inheritance
Anastasia Jakubow
 
Multiple inheritance possible in Java
Multiple inheritance possible in JavaMultiple inheritance possible in Java
Multiple inheritance possible in Java
Kurapati Vishwak
 
Asthma
AsthmaAsthma
Asthma
aliciadiez
 
Inheritance, polymorphisam, abstract classes and composition)
Inheritance, polymorphisam, abstract classes and composition)Inheritance, polymorphisam, abstract classes and composition)
Inheritance, polymorphisam, abstract classes and composition)
farhan amjad
 
Chapter2 Encapsulation (Java)
Chapter2 Encapsulation (Java)Chapter2 Encapsulation (Java)
Chapter2 Encapsulation (Java)
Dyah Fajar Nur Rohmah
 
Flavor encapsulation assignment
Flavor encapsulation assignmentFlavor encapsulation assignment
Flavor encapsulation assignment
Arun Kumar Gupta
 
Anatomi Perkemihan
Anatomi Perkemihan Anatomi Perkemihan
Anatomi Perkemihan
Fransiska Oktafiani
 
Lectura del rellotge
Lectura del rellotgeLectura del rellotge
Lectura del rellotge
Angela Martínez Monteagudo
 

Viewers also liked (20)

Presentacion sobre pedagogía compleja
Presentacion sobre pedagogía complejaPresentacion sobre pedagogía compleja
Presentacion sobre pedagogía compleja
 
Polymorphism (2)
Polymorphism (2)Polymorphism (2)
Polymorphism (2)
 
Inheritance question class 12th
Inheritance question class 12thInheritance question class 12th
Inheritance question class 12th
 
介紹馬祖
介紹馬祖介紹馬祖
介紹馬祖
 
Importancia de la programaciã³n en la electronica
Importancia de la programaciã³n en la electronica Importancia de la programaciã³n en la electronica
Importancia de la programaciã³n en la electronica
 
Introduction to method overloading & method overriding in java hdm
Introduction to method overloading & method overriding  in java  hdmIntroduction to method overloading & method overriding  in java  hdm
Introduction to method overloading & method overriding in java hdm
 
Mi primer semillero
Mi primer semilleroMi primer semillero
Mi primer semillero
 
CTMS for your site's financial activities
CTMS for your site's financial activitiesCTMS for your site's financial activities
CTMS for your site's financial activities
 
Spring Equinox 2010: A Walk In The Park (Boston Common)
Spring Equinox 2010: A Walk In The Park (Boston Common)Spring Equinox 2010: A Walk In The Park (Boston Common)
Spring Equinox 2010: A Walk In The Park (Boston Common)
 
Escape room
Escape roomEscape room
Escape room
 
itft-Inheritance in java
itft-Inheritance in javaitft-Inheritance in java
itft-Inheritance in java
 
OOP Inheritance
OOP InheritanceOOP Inheritance
OOP Inheritance
 
Multiple inheritance possible in Java
Multiple inheritance possible in JavaMultiple inheritance possible in Java
Multiple inheritance possible in Java
 
Asthma
AsthmaAsthma
Asthma
 
Inheritance, polymorphisam, abstract classes and composition)
Inheritance, polymorphisam, abstract classes and composition)Inheritance, polymorphisam, abstract classes and composition)
Inheritance, polymorphisam, abstract classes and composition)
 
Oop Presentation
Oop PresentationOop Presentation
Oop Presentation
 
Chapter2 Encapsulation (Java)
Chapter2 Encapsulation (Java)Chapter2 Encapsulation (Java)
Chapter2 Encapsulation (Java)
 
Flavor encapsulation assignment
Flavor encapsulation assignmentFlavor encapsulation assignment
Flavor encapsulation assignment
 
Anatomi Perkemihan
Anatomi Perkemihan Anatomi Perkemihan
Anatomi Perkemihan
 
Lectura del rellotge
Lectura del rellotgeLectura del rellotge
Lectura del rellotge
 

More from CC Nakhon Pathom Rajabhat University

ภาษา php
ภาษา phpภาษา php
ภาษา java sript
ภาษา java sriptภาษา java sript
ภาษา java sript
CC Nakhon Pathom Rajabhat University
 
session cookies
session cookiessession cookies
ภาษา css
ภาษา cssภาษา css
ภาษา xhtml
ภาษา xhtmlภาษา xhtml
ภาษา html5
ภาษา html5ภาษา html5
การสร้่างเว็บด้วยภาษา html
การสร้่างเว็บด้วยภาษา htmlการสร้่างเว็บด้วยภาษา html
การสร้่างเว็บด้วยภาษา html
CC Nakhon Pathom Rajabhat University
 
หลักการออกแบบเว็บไซต์
หลักการออกแบบเว็บไซต์หลักการออกแบบเว็บไซต์
หลักการออกแบบเว็บไซต์
CC Nakhon Pathom Rajabhat University
 
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจ
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจ
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจ
CC Nakhon Pathom Rajabhat University
 
การนำระบบไปใช้/การบำรุงรักษาระบบ
การนำระบบไปใช้/การบำรุงรักษาระบบการนำระบบไปใช้/การบำรุงรักษาระบบ
การนำระบบไปใช้/การบำรุงรักษาระบบ
CC Nakhon Pathom Rajabhat University
 
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซ
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซการออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซ
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซ
CC Nakhon Pathom Rajabhat University
 
การออกแบบเอาต์พุต/การออกแบบอินพุต
การออกแบบเอาต์พุต/การออกแบบอินพุตการออกแบบเอาต์พุต/การออกแบบอินพุต
การออกแบบเอาต์พุต/การออกแบบอินพุต
CC Nakhon Pathom Rajabhat University
 
Entity Relationship
Entity RelationshipEntity Relationship
แบบจำลองระบบ
แบบจำลองระบบแบบจำลองระบบ
แบบจำลองระบบ
CC Nakhon Pathom Rajabhat University
 
การวิเคราะห์ระบบ 2
การวิเคราะห์ระบบ 2การวิเคราะห์ระบบ 2
การวิเคราะห์ระบบ 2
CC Nakhon Pathom Rajabhat University
 
การวิเคราะห์ระบบ 1
การวิเคราะห์ระบบ 1การวิเคราะห์ระบบ 1
การวิเคราะห์ระบบ 1
CC Nakhon Pathom Rajabhat University
 
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศ
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศการพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศ
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศ
CC Nakhon Pathom Rajabhat University
 
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบ
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบ
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบ
CC Nakhon Pathom Rajabhat University
 
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศ
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศ
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศ
CC Nakhon Pathom Rajabhat University
 
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธา
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธาบทที่7 การประยุกต์ใช้ในงานทางด้านโยธา
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธา
CC Nakhon Pathom Rajabhat University
 

More from CC Nakhon Pathom Rajabhat University (20)

ภาษา php
ภาษา phpภาษา php
ภาษา php
 
ภาษา java sript
ภาษา java sriptภาษา java sript
ภาษา java sript
 
session cookies
session cookiessession cookies
session cookies
 
ภาษา css
ภาษา cssภาษา css
ภาษา css
 
ภาษา xhtml
ภาษา xhtmlภาษา xhtml
ภาษา xhtml
 
ภาษา html5
ภาษา html5ภาษา html5
ภาษา html5
 
การสร้่างเว็บด้วยภาษา html
การสร้่างเว็บด้วยภาษา htmlการสร้่างเว็บด้วยภาษา html
การสร้่างเว็บด้วยภาษา html
 
หลักการออกแบบเว็บไซต์
หลักการออกแบบเว็บไซต์หลักการออกแบบเว็บไซต์
หลักการออกแบบเว็บไซต์
 
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจ
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจ
ปฏิบัติการการพัฒนาออกแบบและการเขียนโปรแกรมเว็บเพจ
 
การนำระบบไปใช้/การบำรุงรักษาระบบ
การนำระบบไปใช้/การบำรุงรักษาระบบการนำระบบไปใช้/การบำรุงรักษาระบบ
การนำระบบไปใช้/การบำรุงรักษาระบบ
 
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซ
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซการออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซ
การออกแบบระบบและการออกแบบยูสเซอร์อินเตอร์เฟซ
 
การออกแบบเอาต์พุต/การออกแบบอินพุต
การออกแบบเอาต์พุต/การออกแบบอินพุตการออกแบบเอาต์พุต/การออกแบบอินพุต
การออกแบบเอาต์พุต/การออกแบบอินพุต
 
Entity Relationship
Entity RelationshipEntity Relationship
Entity Relationship
 
แบบจำลองระบบ
แบบจำลองระบบแบบจำลองระบบ
แบบจำลองระบบ
 
การวิเคราะห์ระบบ 2
การวิเคราะห์ระบบ 2การวิเคราะห์ระบบ 2
การวิเคราะห์ระบบ 2
 
การวิเคราะห์ระบบ 1
การวิเคราะห์ระบบ 1การวิเคราะห์ระบบ 1
การวิเคราะห์ระบบ 1
 
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศ
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศการพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศ
การพัฒนาระบบสารสนเทศและวัฏจักรการพัฒนาระบบสารสนเทศ
 
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบ
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบ
ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ระบบ
 
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศ
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศ
ความรู้เบื้องต้นเกี่ยวกับระบบสารสนเทศ
 
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธา
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธาบทที่7 การประยุกต์ใช้ในงานทางด้านโยธา
บทที่7 การประยุกต์ใช้ในงานทางด้านโยธา
 

Recently uploaded

3_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา สัมพันธ์ไทย ประโยค ป.ธ.3 (2500-2567).pdf
3_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา สัมพันธ์ไทย ประโยค ป.ธ.3 (2500-2567).pdf3_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา สัมพันธ์ไทย ประโยค ป.ธ.3 (2500-2567).pdf
3_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา สัมพันธ์ไทย ประโยค ป.ธ.3 (2500-2567).pdf
สุเมธี​​​​ ตี่พนมโอรัล / សុមេធី ទីភ្នំឱរ៉ាល់ (Sumedhi TyPhnomAoral)
 
แนวความเชื่อ วิธีการปฎิบัติ พระพุทธศาสนามหายาน.pdf
แนวความเชื่อ วิธีการปฎิบัติ พระพุทธศาสนามหายาน.pdfแนวความเชื่อ วิธีการปฎิบัติ พระพุทธศาสนามหายาน.pdf
แนวความเชื่อ วิธีการปฎิบัติ พระพุทธศาสนามหายาน.pdf
Faculty of BuddhismMahachulalongkornrajavidyalaya Roi Et Buddhist College
 
1-2_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลมคธเป็นไทย ประโยค 1-2 (2510-2567).pdf
1-2_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลมคธเป็นไทย ประโยค 1-2 (2510-2567).pdf1-2_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลมคธเป็นไทย ประโยค 1-2 (2510-2567).pdf
1-2_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลมคธเป็นไทย ประโยค 1-2 (2510-2567).pdf
สุเมธี​​​​ ตี่พนมโอรัล / សុមេធី ទីភ្នំឱរ៉ាល់ (Sumedhi TyPhnomAoral)
 
ภาษาอังกฤษเพื่อการปฏิบัติกรรมฐานในพระพุทธศาสนา
ภาษาอังกฤษเพื่อการปฏิบัติกรรมฐานในพระพุทธศาสนาภาษาอังกฤษเพื่อการปฏิบัติกรรมฐานในพระพุทธศาสนา
ภาษาอังกฤษเพื่อการปฏิบัติกรรมฐานในพระพุทธศาสนา
Faculty of BuddhismMahachulalongkornrajavidyalaya Roi Et Buddhist College
 
1-2_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา บาลีไวยากรณ์ ประโยค 1-2 (2511-2567).pdf
1-2_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา บาลีไวยากรณ์ ประโยค 1-2 (2511-2567).pdf1-2_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา บาลีไวยากรณ์ ประโยค 1-2 (2511-2567).pdf
1-2_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา บาลีไวยากรณ์ ประโยค 1-2 (2511-2567).pdf
สุเมธี​​​​ ตี่พนมโอรัล / សុមេធី ទីភ្នំឱរ៉ាល់ (Sumedhi TyPhnomAoral)
 
รายงานโครงงานการออกแบบลายเสื่อโดยใช้รูปเรขาคณิต ระดับประเทศ.pdf
รายงานโครงงานการออกแบบลายเสื่อโดยใช้รูปเรขาคณิต ระดับประเทศ.pdfรายงานโครงงานการออกแบบลายเสื่อโดยใช้รูปเรขาคณิต ระดับประเทศ.pdf
รายงานโครงงานการออกแบบลายเสื่อโดยใช้รูปเรขาคณิต ระดับประเทศ.pdf
NitayataNuansri
 
การเขียนข้อเสนอโครงการวิจัย (Research Proposal)
การเขียนข้อเสนอโครงการวิจัย (Research Proposal)การเขียนข้อเสนอโครงการวิจัย (Research Proposal)
การเขียนข้อเสนอโครงการวิจัย (Research Proposal)
Prachyanun Nilsook
 
3_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลมคธเป็นไทย ประโยค ป.ธ.3 (2500-2567).pdf
3_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลมคธเป็นไทย ประโยค ป.ธ.3 (2500-2567).pdf3_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลมคธเป็นไทย ประโยค ป.ธ.3 (2500-2567).pdf
3_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลมคธเป็นไทย ประโยค ป.ธ.3 (2500-2567).pdf
สุเมธี​​​​ ตี่พนมโอรัล / សុមេធី ទីភ្នំឱរ៉ាល់ (Sumedhi TyPhnomAoral)
 
4_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลไทยเป็นมคธ ประโยค ป.ธ.4 (2505-2567).pdf
4_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลไทยเป็นมคธ ประโยค ป.ธ.4 (2505-2567).pdf4_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลไทยเป็นมคธ ประโยค ป.ธ.4 (2505-2567).pdf
4_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลไทยเป็นมคธ ประโยค ป.ธ.4 (2505-2567).pdf
สุเมธี​​​​ ตี่พนมโอรัล / សុមេធី ទីភ្នំឱរ៉ាល់ (Sumedhi TyPhnomAoral)
 

Recently uploaded (9)

3_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา สัมพันธ์ไทย ประโยค ป.ธ.3 (2500-2567).pdf
3_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา สัมพันธ์ไทย ประโยค ป.ธ.3 (2500-2567).pdf3_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา สัมพันธ์ไทย ประโยค ป.ธ.3 (2500-2567).pdf
3_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา สัมพันธ์ไทย ประโยค ป.ธ.3 (2500-2567).pdf
 
แนวความเชื่อ วิธีการปฎิบัติ พระพุทธศาสนามหายาน.pdf
แนวความเชื่อ วิธีการปฎิบัติ พระพุทธศาสนามหายาน.pdfแนวความเชื่อ วิธีการปฎิบัติ พระพุทธศาสนามหายาน.pdf
แนวความเชื่อ วิธีการปฎิบัติ พระพุทธศาสนามหายาน.pdf
 
1-2_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลมคธเป็นไทย ประโยค 1-2 (2510-2567).pdf
1-2_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลมคธเป็นไทย ประโยค 1-2 (2510-2567).pdf1-2_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลมคธเป็นไทย ประโยค 1-2 (2510-2567).pdf
1-2_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลมคธเป็นไทย ประโยค 1-2 (2510-2567).pdf
 
ภาษาอังกฤษเพื่อการปฏิบัติกรรมฐานในพระพุทธศาสนา
ภาษาอังกฤษเพื่อการปฏิบัติกรรมฐานในพระพุทธศาสนาภาษาอังกฤษเพื่อการปฏิบัติกรรมฐานในพระพุทธศาสนา
ภาษาอังกฤษเพื่อการปฏิบัติกรรมฐานในพระพุทธศาสนา
 
1-2_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา บาลีไวยากรณ์ ประโยค 1-2 (2511-2567).pdf
1-2_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา บาลีไวยากรณ์ ประโยค 1-2 (2511-2567).pdf1-2_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา บาลีไวยากรณ์ ประโยค 1-2 (2511-2567).pdf
1-2_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา บาลีไวยากรณ์ ประโยค 1-2 (2511-2567).pdf
 
รายงานโครงงานการออกแบบลายเสื่อโดยใช้รูปเรขาคณิต ระดับประเทศ.pdf
รายงานโครงงานการออกแบบลายเสื่อโดยใช้รูปเรขาคณิต ระดับประเทศ.pdfรายงานโครงงานการออกแบบลายเสื่อโดยใช้รูปเรขาคณิต ระดับประเทศ.pdf
รายงานโครงงานการออกแบบลายเสื่อโดยใช้รูปเรขาคณิต ระดับประเทศ.pdf
 
การเขียนข้อเสนอโครงการวิจัย (Research Proposal)
การเขียนข้อเสนอโครงการวิจัย (Research Proposal)การเขียนข้อเสนอโครงการวิจัย (Research Proposal)
การเขียนข้อเสนอโครงการวิจัย (Research Proposal)
 
3_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลมคธเป็นไทย ประโยค ป.ธ.3 (2500-2567).pdf
3_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลมคธเป็นไทย ประโยค ป.ธ.3 (2500-2567).pdf3_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลมคธเป็นไทย ประโยค ป.ธ.3 (2500-2567).pdf
3_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลมคธเป็นไทย ประโยค ป.ธ.3 (2500-2567).pdf
 
4_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลไทยเป็นมคธ ประโยค ป.ธ.4 (2505-2567).pdf
4_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลไทยเป็นมคธ ประโยค ป.ธ.4 (2505-2567).pdf4_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลไทยเป็นมคธ ประโยค ป.ธ.4 (2505-2567).pdf
4_ปัญหาและเฉลยข้อสอบบาลีสนามหลวง วิชา แปลไทยเป็นมคธ ประโยค ป.ธ.4 (2505-2567).pdf
 

Inheritance and Method Overriding

  • 1. Inheritance and Method Overriding อาจารย์สมเกียรติ ช่อเหมือน สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี (tkorinp@hotmail.com)
  • 2. Inheritance and Method Overriding • แนวคิดที่สำคัญของกำรสืบทอด (Inheritance) – เข้ำใจวิธีกำรใช้คลำสนำมธรรมเพื่อสะท้อนคุณลักษณะทั่วไป – ใช้ UML แสดงกำรสืบทอด • กำรทำ method Overriding – กำรแทนที่เมธอด • ควำมเหมำะสมในกำรใช้ “Super” – Implement ในภำษำ Java
  • 3. Object Oriented Programming using Java 1) Object Families 2) Generalisation and Specialisation 3) Inheritance 4) Implementing Inheritance in Java 5) Constructors 6) Constructor Rules 7) Access Control 8) Abstract Classes 9) Overriding Methods 10) The ‘Object’ Class 11) Overriding toString() defined in ‘Object’
  • 4. Object Families • สิ่งมีชีวิตบนโลกมีควำมเกี่ยวข้องกัน แบบครอบครัว แนวคิดกำรส่ง ต่อ มรดก ไปยังลูกหลำนของ พ่อแม่ เป็นแนวคิดที่สำคัญของ หลักกำร OOP • ปกติกำรใช้ constructors and access control (public/private) • ปัญหำเฉพำะที่เกี่ยวข้องกับกำรสืบทอด คือ กำรพิจำรณำคลำส แบบนำมธรรมและเมธอดที่สำคัญในกำรสืบทอด
  • 5. Generalisation and Specialisation • Class เป็นรูปแบบในกำรพิจำรณำรำยละเอียดและสร้ำงวัตถุที่ แตกต่ำงกัน – เช่นนักศึกษำรหัส 594602001 เป็นตัวอย่ำงของนักศึกษำ – รหัส 594602001 คือนักศึกษำ • Class สำมำรถหำควำมสัมพันธ์ที่คล้ำยกัน เพื่อจัดกลุ่มและลำดับชั้น • ตัวอย่ำงเช่น อำณำจักรสัตว์ทำงชีววิทยำ กำรจำแนกสิ่งของตำมเกณฑ์
  • 6. Inheritance • กำรระบุลักษณะทั่วไปไว้ด้ำนบนของลำดับชั้นและเฉพำะเจำะจง มำกขึ้นในลำดับถัดไป ตำมหลักกำรเชิงวัตถุ (generalization and specialization) • ลักษณะด้ำนบนจะถูกถ่ำยทอดให้ Class หรือ Object ในลำดับ ถัดไปแบบอัตโนมัติ เรียกว่ำ “inheritance” • ตัวอย่ำงเช่น เมื่อพิจำรณำสิ่งพิมพ์ทั้งสองประเภท คือ หนังสือและ นิตยสำร – UML Class
  • 9. Implementing Inheritance in Java • Superclass เป็นคลำสที่มีคุณสมบัติพื้นฐำน • Subclass สำมำรถระบุกำรสืบทอดคุณสมบัติจำก superclass – โดยใช้คำหลัก extends • ตัวอย่ำงเช่น class MySubclass extends MySuperclass { // additional instance variables and // additional methods }
  • 10. Constructors • แต่ละClass (ไม่ว่ำจะSub หรือ Super) – ควรมีกำรห่อหุ้ม – มีกำรกำหนดเริ่มต้นของตัวแปร กำรตั้งค่ำที่เกี่ยวข้องกับสถำนะ • Constructors ใช้สำหรับกำหนดค่ำเริ่มต้นทั่วไปของ Class • Subclass สำมำรถมีคอนสตรัคเตอร์ของตัวเองสำหรับกำหนดค่ำเริ่มต้น • แต่หำกต้องกำรใช้ค่ำเริ่มต้นของ Superclass ต้องใช้คำหลัก “super” Class MySubClass extends MySuperClass { public MySubClass (sub-parameters) { super(super-parameters); // other initialization }
  • 11. Constructors • ในกำรสร้ำง Class โดยกำรเรียกใช้ Constructors ถือเป็นคำสั่งแรก • พำรำมิเตอร์ที่ส่งผ่ำนไปยังSubclass public Publication (String pTitle, double pPrice, int pCopies) { title = pTitle; // etc. } public Book (String pTitle, String pAuthor, double pPrice, int pCopies) { super(pTitle, pPrice, pCopies); author = pAuthor; //etc. }
  • 12. Constructor Rules • หำก superclass มี parameterless (หรือเริ่มต้น) คอนสตรัคเตอร์นี้จะ ถูกเรียกโดยอัตโนมัติ • หำกไม่มีกำรเรียกใช้อย่ำงชัดเจนกับซูเปอร์จะต้องสร้ำง constructor ของ subclass
  • 13. Access Control • กำรใช้ protected เพื่อให้เข้ำถึงได้จำก Subclass • กำรสร้ำงเมธอดในกำรเข้ำถึงและปรับเปลี่ยนค่ำ private int copies; public int getCopies () { return copies; } public void setCopies(int pCopies) { copies = pCopies; } วิธีกำรเหล่ำนี้ช่วยให้ superclass ควบคุมกำรเข้ำถึงตัวแปรแบบ Private // in Book public void orderCopies(int pCopies) { setCopies(getCopies() + pCopies); } // and in Magazine public void recvNewIssue(String pNewIssue) { setCopies(orderQty); currIssue = pNewIssue; }
  • 14. Abstract Classes • แนวคิดในกำรสร้ำงคลำสที่ร่ำงขึ้น และป้องกันกำรสร้ำงวัตถุจำกคลำส ประเภทนี้ • กำรรวบรวมคุณลักษณะทั่วไป สำหรับสืบทอดไปเป็น Subclass • โดยประกำศ “abstract” abstract class SuperClassName { // etc. }
  • 15. Overriding Methods • Subclass สำมำรถสืบทอดเมธอดของ Superclass ได้ • แต่สำมำรถเปลี่ยนแปลงกำรกำรทำงำนของเมธอดไปจำก Superclass • เรำเรียกว่ำ “overriding method” • ซึ่งเป็นคุณสมบัติหนึ่งของกำรสืบทอด (inherited) • สำมำรถปรับปรุงเมธอดและทำให้เมธอดเหมำะสมกับ Subclass ยิ่งขึ้น public class DiscMag extends Magazine { // the constructor public DiscMag (String pTitle, double pPrice, int pOrderQt, String pCurrIssue, int pCopies) { super(pTitle, pPrice, pOrderQty, pCurrIssue, pCopies); } // the overridden method public void recvNewIssue(String pNewIssue) { super.recvNewIssue(pNewIssue); System.out.println("Check discs attached to this magazine"); } }
  • 16. The ‘Object’ Class • Object หรือวัตถุ เป็นเสมือนตัวแทนของทุกอย่ำงในคลำสที่กำหนดขึ้น • โดยเป็นส่วนบนสุดในกำรเข้ำถึงสิ่งต่ำง ๆ ที่อยู่ภำยใน • ประกำศ เพื่อใช้งำน object จำก Class • “new” เพื่อกำหนดค่ำเริ่มต้นจำก Class ให้กับ object
  • 17. Overriding toString() defined in ‘Object’
  • 18. Summary • Inheritance ช่วยให้สะท้อนคุณสมบัติทั่วไปและพฤติกรรม โดยจำลองไว้ใน superclass • subclass ถูกนำมำใช้ในกำรจำลองคุณลักษณะเฉพำะและพฤติกรรม • code ที่เขียนใน superclass สืบทอดไปยัง subclasses ทั้งหมด ถ้ำต้องกำร แก้ไขหรือปรับปรุง code สำมำรถปรับที่ superclass จะส่งผลกระทบต่อ subclasses ทั้งหมด ช่วยลดกำรเขียนCode ในโปรแกรม • constructors ที่สำมำรถนำไปใช้กับ Subclass • superclass สำมำรถกำหนดเป็น Abstract เพื่อป้องกันกำรสร้ำงวัตถุ • สำมำรถทำ override เพื่อปรับปรุงเมธอดให้สอดคล้องกับ Subclass • ใน Java ทุกคลำสสืบทอดมำจำก Class “Object” • Object เป็นกำรกำหนดกำรดำเนินกำรแบบสำกล เป็นตัวแทนในกำรใช้ ประโยชน์จำกคลำสที่กำหนด