# การใช้งาน Inheritance ใน OOP Concept ภาษา Dart แบบง่ายๆ
การเขียนโปรแกรมแนว Object-Oriented Programming (OOP) เป็นวิธีการเขียนโปรแกรมที่ทันสมัยและทรงพลัง ซึ่งช่วยให้นักพัฒนาสามารถจัดการกับความซับซ้อนของโปรแกรมได้ดีขึ้น หนึ่งใน concept หลักของ OOP คือ "Inheritance" หรือที่เรียกว่า "การสืบทอด" ภาษา Dart ซึ่งเป็นภาษาโปรแกรมที่พัฒนาโดย Google เป็นภาษาที่สนับสนุนการเขียน OOP อย่างเต็มรูปแบบ ในบทความนี้ เราจะสำรวจวิธีการใช้งาน inheritance ใน Dart และจะยกตัวอย่าง use case ในโลกจริงพร้อมตัวอย่าง code ที่ทำให้การเข้าใจเป็นเรื่องง่ายขึ้น
ใน OOP, Inheritance คือความสามารถของ class หนึ่ง (subclass หรือ derived class) ที่จะรับคุณสมบัติอันได้แก่ methods และ variables จาก class อื่น (superclass หรือ base class) นอกจากนี้ subclass สามารถขยายหรือ override พฤติกรรมที่สืบทอดมาได้ Inheritance จึงเป็นวิธีการหนึ่งที่ทำให้การจัดการ code และการ reuse code เป็นไปอย่างมีประสิทธิภาพ
เริ่มต้นด้วยการสร้าง superclass ที่เรียกว่า `Vehicle` โดยมี properties บางอย่างและ methods ที่สามารถแสดงความเป็น vehicle ได้
class Vehicle {
String make;
String model;
Vehicle(this.make, this.model);
void startEngine() {
print('Engine started for $make $model');
}
}
class Car extends Vehicle {
int numberOfDoors;
Car(String make, String model, this.numberOfDoors) : super(make, model);
void lockDoors() {
print('Locked $numberOfDoors doors of $make $model');
}
}
void main() {
var myCar = Car('Toyota', 'Corolla', 4);
myCar.startEngine(); // Inherited method
myCar.lockDoors(); // Subclass method
}
ในตัวอย่างนี้, `Car` class สืบทอด properties และ method จาก `Vehicle`.
ในการ override method ของ superclass, subclass สามารถปรับเปลี่ยนการทำงานของ method นั้นได้:
class ElectricCar extends Car {
int batteryLevel;
ElectricCar(String make, String model, int numberOfDoors, this.batteryLevel)
: super(make, model, numberOfDoors);
@override
void startEngine() {
if (batteryLevel > 20) {
print('Electric engine started for $make $model');
} else {
print('Not enough battery to start engine for $make $model');
}
}
}
void main() {
var myElectricCar = ElectricCar('Tesla', 'Model S', 4, 80);
myElectricCar.startEngine(); // Overridden method
}
ใน `ElectricCar` ได้ override `startEngine()` โดยเช็คระดับแบตเตอรี่ก่อนจะเริ่มเครื่องยนต์.
Inheritance ยังสนับสนุน polymorphism, หมายความว่า object ของ subclass สามารถถูกจัดการเหมือนกับมันคือ instance ของ superclass ได้.
void checkVehicle(Vehicle vehicle) {
vehicle.startEngine();
}
void main() {
var car = Car('Toyota', 'Camry', 4);
var electricCar = ElectricCar('Tesla', 'Model 3', 4, 100);
checkVehicle(car);
checkVehicle(electricCar); // Polymorphism
}
จากโค้ดข้างต้น, `checkVehicle()` method สามารถรับ parameter ที่เป็น `Vehicle`, `Car`, หรือ `ElectricCar` ผ่าน concept ของ polymorphism.
---
ในโลกการพัฒนาโปรแกรม, inheritance มีหลาย usecase เช่นในการพัฒนาแอปพลิเคชัน mobile ซึ่งสามารถแบ่งประเภทหน้าจอ (screens) ที่มีลักษณะเช่น navigation, buttons และ other UI elements ได้. การใช้ inheritance สามารถสร้าง base screen ที่มี elements และ functionalities พื้นฐานที่ screens อื่นๆ สามารถสืบทอดและขยายการทำงานได้เพื่อสร้าง user experience ที่สอดคล้องกัน นอกจากนี้ยังช่วยลดซ้ำซ้อนของ code และทำให้การบำรุงรักษาง่ายขึ้น
การเรียนรู้และทำความเข้าใจใน concept ของ inheritance ว่าทำงานอย่างไรในภาษา Dart และ OOP สามารถเป็นพื้นฐานที่แข็งแกร่งสำหรับการสร้างโปรแกรมในวิธีการที่มีโครงสร้างและสามารถขยายได้ ที่สถาบันเรา EPT (Expert-Programming-Tutor) มีหลักสูตรที่จัดสร้างขึ้นมาเพื่อช่วยให้คุณเรียนรู้และประยุกต์ใช้หลักการ OOP เหล่านี้ได้อย่างเชี่ยวชาญ เพื่อพัฒนาซอฟต์แวร์ที่มีคุณภาพและตอบโจทย์ตลาดไอทีในปัจจุบัน.
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: oop inheritance dart programming class subclass method_overriding polymorphism code_example object-oriented_programming use_case real_world_example mobile_app_development ui_elements base_screen
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM