OLHub

Kế thừa & Đa hình

extends, super, override, dynamic dispatch, abstract class vs interface, sealed class (Java 17+), và vì sao 'composition over inheritance' không phải khẩu hiệu rỗng.

9 bài · ~122 phútMiễn phí

Nội dung

Danh sách bài học

  1. 01

    Tư Duy Trừu Tượng Hóa: Trụ Cột Quan Trọng Nhất Của OOP

    Hiểu bản chất trừu tượng hóa và ngữ nghĩa abstraction trong OOP, quy trình 5 bước mô hình hóa domain cùng các công cụ Java từ interface đến record.

    ~12 phút
  2. 02

    Nhận diện abstraction sai — over-engineering trap và cách sửa

    Nhận diện 4 bẫy over-engineering kinh điển trong lập trình hướng đối tượng, áp dụng quy tắc Rule of 3 và YAGNI để thiết kế abstraction chuẩn xác.

    ~13 phút
  3. 03

    `extends` và `super` — kế thừa cơ bản

    Cơ chế extends, constructor chain với super(...), đơn kế thừa trong Java, Object là gốc và thứ tự khởi tạo bộ nhớ từ cha xuống con.

    ~12 phút
  4. 04

    Override và dynamic dispatch — đa hình ở runtime

    Cơ chế override method, phân biệt với overload, annotation @Override, dynamic dispatch với vtable trong JVM, covariant return type và các quy tắc Liskov.

    ~12 phút
  5. 05

    Abstract class — template buộc subclass hoàn thiện

    Khi nào nên dùng abstract class, abstract method, template method pattern trong kiến trúc phần mềm, so sánh với interface và quy tắc quản lý state.

    ~12 phút
  6. 06

    Interface — hợp đồng capability với default method

    Interface là gì, đa kế thừa interface, default method Java 8+, private method Java 9+, functional interface, và so sánh chi tiết với abstract class.

    ~12 phút
  7. 07

    Sealed class — kiểm soát tập subtype với pattern matching exhaustive

    Sealed class/interface trong Java 17+, từ khóa permits, quy tắc final/sealed/non-sealed, và kỹ thuật kết hợp Record với Pattern Matching Switch.

    ~12 phút
  8. 08

    Composition over inheritance — khi nào KHÔNG kế thừa

    Nguyên tắc Effective Java Item 18: ưu tiên composition hơn inheritance. Vấn đề của inheritance, cách composition sửa, pattern delegation, và khi nào thực sự cần extends.

    ~12 phút
  9. 09

    Mini-challenge: Thư viện đa phương tiện với sealed và record

    Thực hành thiết kế hệ thống ấn phẩm thư viện đa phương tiện với sealed interface LibraryAsset, record cho từng ấn phẩm và switch pattern matching exhaustive.

    ~25 phút