Cách tạo lớp, đối tượng, kế thừa và sử dụng tính đa hình trong python

Ngày đăng: 13/01/2024   -    Cập nhật: 13/01/2024

Python là một ngôn ngữ lập trình hướng đối tượng, cho phép bạn tạo ra các lớp và đối tượng để mô hình hóa dữ liệu và hành vi. Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo lớp và đối tượng, cách sử dụng kế thừa và tính đa hình trong Python.

Cách tạo lớp và đối tượng trong Python

Để tạo một lớp trong Python, ta sử dụng từ khóa class theo sau là tên lớp. Trong lớp, ta định nghĩa các thuộc tính dữ liệu và phương thức.


Ví dụ:


class Person:

    def __init__(self, name, age):

        self.name = name

        self.age = age

        

    def sayHi(self):

        print(f'Xin chào, tôi tên là {self.name}')


person = Person('John', 20)

print(person.name)

person.sayHi()


Ở đây, chúng ta định nghĩa lớp Person với phương thức khởi tạo init() để khởi tạo các thuộc tính name và age. Phương thức sayHi() cho phép đối tượng tự giới thiệu.


Ta tạo đối tượng person thuộc lớp Person với các tham số truyền vào. Sau đó có thể truy xuất các thuộc tính và gọi phương thức của đối tượng.


Như vậy, lớp định nghĩa bản thiết kế cho các đối tượng, còn đối tượng là thể hiện cụ thể của lớp với các giá trị cụ thể.
 

Kế thừa trong Python: Cách sử dụng tính chất kế thừa để tái sử dụng mã

Kế thừa là một tính năng quan trọng trong lập trình hướng đối tượng, cho phép một lớp con kế thừa các thuộc tính và phương thức từ lớp cha.


Để tạo một lớp con kế thừa từ lớp cha, ta chỉ cần định nghĩa lớp con và thêm tên lớp cha vào trong dấu ngoặc đơn:


class Person:

    def __init__(self, name):

        self.name = name


class Student(Person):

    def __init__(self, name, school):

        super().__init__(name)

        self.school = school

Ở đây, lớp Student kế thừa từ lớp Person nên có quyền truy xuất và sử dụng các thuộc tính và phương thức của lớp Person.


Ưu điểm của kế thừa

  • Giúp tái sử dụng mã thay vì viết lại từ đầu
  • Lớp con chỉ cần định nghĩa thêm phần mở rộng, không phải viết lại phần cơ bản
  • Cấu trúc code rõ ràng và dễ quản lý hơn
  • Như vậy, kế thừa giúp chúng ta tái sử dụng mã một cách hiệu quả và tránh lặp lại code.

Tạo đối tượng trong Python: Cách khởi tạo và sử dụng đối tượng

Để tạo đối tượng trong Python, ta sử dụng từ khóa class để định nghĩa lớp, sau đó dùng lớp này để khởi tạo các đối tượng.


Cú pháp khởi tạo đối tượng:


<tên_đối_tượng> = <tên_lớp>(<các tham số>)

Ví dụ:


class Person:

  def __init__(self, name, age):

    self.name = name

    self.age = age

    

person = Person("Bob", 30)


Ở đây, chúng ta định nghĩa lớp Person với phương thức init() để khởi tạo các thuộc tính. Sau đó tạo đối tượng person của lớp Person với các tham số truyền vào.


Sau khi khởi tạo, ta có thể truy xuất các thuộc tính và gọi phương thức của đối tượng:


print(person.name)

print(person.age) 


person.walk() # gọi phương thức của đối tượng


Như vậy, đối tượng cho phép chúng ta mô hình hóa các thực thể trong thế giới thực với các dữ liệu và hành vi riêng. Việc sử dụng đối tượng giúp chương trình dễ mở rộng và bảo trì hơn.

Đa hình trong Python: Khái niệm và cách sử dụng tính đa hình trong Python

Đa hình là một tính chất quan trọng của lập trình hướng đối tượng, cho phép các đối tượng thuộc các lớp con có cùng phương thức nhưng thực hiện các hành động khác nhau.


Ví dụ về đa hình trong Python:


class Animal:

  def make_sound(self):

    print("Some generic animal sound!")


class Dog(Animal):

  def make_sound(self):

    print("Woof woof!") 

    

class Cat(Animal):

  def make_sound(self):

    print("Meow meow!")


dog = Dog()

cat = Cat()


dog.make_sound() # Woof woof!

cat.make_sound() # Meow meow!


Ở đây, cả Dog và Cat đều kế thừa từ lớp Animal và có cùng phương thức make_sound(). Tuy nhiên, mỗi lớp con lại cài đặt lại phương thức này theo cách riêng để phát ra âm thanh khác nhau.


Ưu điểm của đa hình:

  • Cho phép mã code linh hoạt, dễ mở rộng thêm các lớp con mới.
  • Không cần sửa đổi mã ở lớp cha khi bổ sung các lớp con.
  • Các đối tượng có cùng phương thức nhưng có thể hoạt động khác nhau.
  • Như vậy, đa hình là một tính chất quan trọng của lập trình hướng đối tượng, giúp tăng tính linh hoạt và tái sử dụng code.

Sự khác nhau giữa kế thừa và đa hình trong Python


Kế thừa

Đa hình

Cho phép lớp con kế thừa các thuộc tính và phương thức từ lớp cha

Cho phép các lớp con ghi đè lại phương thức của lớp cha nhưng có cài đặt khác

Tập trung vào việc tái sử dụng thuộc tính và phương thức

Tập trung vào việc cài đặt lại các phương thức đa dạng

Các lớp con chia sẻ chung interface (giao diện) của lớp cha

Các lớp con có thể cài đặt lại interface khác nhau

Được sử dụng để mở rộng chức năng của lớp cha

Được sử dụng để cài đặt các hành vi đa dạng cho các lớp cụ thể


 

Kết luận: như vậy, kế thừa và đa hình đều rất hữu ích trong lập trình hướng đối tượng. Kế thừa giúp tái sử dụng mã, còn đa hình giúp tăng tính linh hoạt và mở rộng hệ thống lớp dễ dàng hơn.


Bình luận Facebook
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!