Please enable JavaScript.
Coggle requires JavaScript to display documents.
Mindmap Week 7 - Coggle Diagram
Mindmap Week 7
Composition over Inheritance
Composition over inheritance: Trong lập trình hướng đối tượng (OOP) là nguyên tắc mà các lớp phải đạt được hành vi đa hình và tái sử dụng mã theo thành phần của chúng (bằng cách chứa các phiên bản của các lớp khác thực hiện chức năng mong muốn) thay vì kế thừa từ một cơ sở hoặc lớp cha.
Aggregation xảy ra khi một class chứa một instance của một class khác. Làm cho một instance của một class thành một thuộc tính của một class khác được gọi là object aggregation. Khi một instance của một class là một thành viên của một class khác, ta nói rằng có một mối quan hệ “has a” giữa các class.
Nếu class mới nhiều hơn hoặc ít hơn class gốc (mối quan hệ “is a”). Sử dụng kế thừa. Class mới bây giờ là một class con của class ban đầu.
Nếu class mới phải có class gốc (mối quan hệ “has a”). Sử dụng aggregation. Class mới hiện có class ban đầu là thành viên.
Hình vuông có kế thừa hình chữ nhật vì:
Hình vuông thừa hưởng tất cả các đặc (attribute) tính của hình chữ nhật. (Như có 4 góc vuông, có 2 đường chéo cắt nhau tại trung điểm,...), hình vuông là một trường hợp của hình chữ nhật
Hình vuông có thể dùng những phương thức (method) để tính diện tích, chu vi hùng chữ nhật.
Thuộc tính hàm/private của lớp cha có thể xem là member của lớp con?
Định nghĩa member của một class là các thuộc tính, phương thức được định nghĩa trong một class, đại diện riêng biệt, và tất cả các member này đều có thể tương tác với nhau trong class đó
Do đó nếu lớp con kết thừa lớp cha bằng public/protected/private: thì thuộc tính/ hàm được giữ nguyên tính chất trên, vẫn hoạt động bth và các biến này vẫn đại diện cho lớp con
Thứ tự gọi constructor, destructor trong một hệ thống các lớp kế thừa
Thứ tự gọi Constructor ở lớp kế thừa
Constructor lớp kế thừa được gọi sau -> Phần vỏ mới được tạo sau.
Lớp kế thừa có thể chỉ định constructor tạo phần lõi.
Constructor lớp cơ sở được tạo trước -> Phần lõi cơ sở được tạo trước.
Không chỉ định => Default Constructor được gọi
Thứ tự gọi Destructor ở lớp kết thừa
Destructor ở lớp kế thừa được gọi trước -> Phần vỏ bên ngoài được hủy trước.
Destructor lớp cơ sở được gọi sau -> Phần lõi cơ sở được hủy sau.
Ngược lại với trình tự tạo lập
Mỗi lớp chỉ có một destructor -> Lớp kế thừa không cần chỉ định hàm hủy cơ sở