Vì vậy, chúng ta đã nói về tính đóng gói, về tính trừu tượng.
Còn về trụ cột thứ ba của OP?
Nó được gọi là thừa kế.
Và kế thừa cho phép các đối tượng mới tiếp nhận các thuộc tính của các đối tượng hiện có.
Vì vậy, bạn có thể kế thừa các lớp.
Hãy xem một ví dụ.
Hãy xóa mã trước đó mà chúng tôi đã có và quay lại ví dụ trò chơi của chúng tôi.
Chúng tôi muốn tạo một trò chơi mới và chúng tôi có nhiều kiểu người dùng khác nhau.
Vì vậy, chúng tôi có những người dùng có thể là pháp sư, có thể khác, có thể là, tôi không biết,
cung thủ, nhưng tất cả những người dùng này đều có một số chức năng chung và mỗi người dùng phụ như pháp sư, yêu tinh,
cung thủ đều có một số chức năng chung chức năng được chia sẻ, nhưng sau đó một lần nữa, các cuộc tấn công có thể khác nhau.
Vì vậy, bằng cách sử dụng OP, chúng tôi thực sự có thể thực hiện kế thừa.
Ví dụ: giả sử chúng ta có một người dùng lớp ở đây và người dùng này sẽ có, giả sử, một hàm đăng nhập.
Hoặc phương thức đăng nhập một lần nữa nó sẽ tự nhận và bây giờ chúng ta chỉ giả sử rằng chúng ta có một số
loại đăng nhập ở đây.
Vì vậy, chúng ta hãy chỉ nói rằng bây giờ in blog.
Và bởi vì để chơi một trò chơi, họ phải đăng nhập.
Bây giờ, bạn có thể tự hỏi, ho, ho ho, phương thức init ở đây ở đâu?
Chúng ta có nên chạy phương thức init đó trước không?
Chà, chúng ta có thể, nhưng nếu chúng ta không có bất kỳ biến hoặc thuộc tính nào mà chúng ta muốn gán cho người dùng, thì trong trường hợp
đó, chúng ta sẽ không cần một phương thức A.
Vì vậy, hiện tại, chúng tôi sẽ chỉ nói rằng chúng tôi không cần bất kỳ thứ gì mà người dùng có ngoài phương thức
đăng nhập này.
Bây giờ giả sử chúng ta muốn tạo một loạt các lớp con để chúng ta có một trình hướng dẫn lớp.
Và hiện tại, chúng ta sẽ chỉ thực hiện việc vượt qua ở đây để chúng ta không có một lớp trống, nhưng nó vẫn sẽ cho phép chúng ta
xây dựng nó.
Và sau đó giả sử chúng ta cũng có một lớp học.
Cung thủ cũng sẽ đi qua.
Ồ.
Hãy chắc chắn rằng chúng tôi có dấu ngoặc ở đây.
Bây giờ, đây là điều.
Lý tưởng nhất, tất cả các pháp sư và cung thủ này cũng là người dùng.
Đúng.
Vì vậy, chúng tôi có người dùng.
Và những người dùng này có thể có nhiều hình thức.
Họ có thể là pháp sư.
Họ có thể là cung thủ.
Họ có thể là yêu tinh.
Tất cả các nhân vật trong trò chơi của chúng tôi.
Nhưng tất cả chúng, giả sử, trước tiên phải đăng nhập.
Làm cách nào để chúng tôi có thể đảm bảo rằng tất cả những người dùng hoặc lớp học này cũng có quyền truy cập để đăng nhập?
Chà, chúng ta có thể sử dụng quyền thừa kế.
Và chúng ta phải làm thế nào để thực hiện việc thừa kế?
Thực sự thì khá dễ dàng.
Tất cả những gì chúng tôi làm là trong ngoặc.
Chuyển lớp cha mà chúng ta muốn kế thừa.
Vì vậy, giả sử tôi làm người dùng ở đây.
Bây giờ chúng ta hãy nhấp vào chạy ở đây.
Không có sóng.
Mọi thứ đều tốt.
Và nhân tiện, bạn thấy dòng màu xanh lá cây ở đây cho tôi biết rằng thụt lề không phải là bội số của bốn
vì thụt lề phải là bốn trong Python.
Vì vậy, chúng tôi chỉ có thể làm điều này.
Nhưng tôi muốn giữ nó nhỏ hơn để dễ đọc hơn.
Được chứ.
Vì vậy, hãy bắt đầu một lớp học ở đây.
Tôi sẽ tạo một trình hướng dẫn và sau đó nói.
Wizard và chạy lớp wizard đó.
Bây giờ, nếu tôi thực hiện in ở đây và tôi làm vậy, hãy giả sử trình hướng dẫn in.
Nếu tôi bấm Chạy.
Tôi thấy rằng đối tượng wizard đã được tạo.
Và nếu tôi không đăng nhập thì sao?
Tôi thấy điều đó.
Vâng, nó thực sự ở đó.
Nếu tôi đăng nhập và nhấp vào Chạy.
Này, tôi đã đăng nhập.
Làm thế nào là mát đó là?
Tôi kế thừa từ lớp người dùng chức năng này.
Và điều này thực sự, thực sự mạnh mẽ bởi vì bây giờ tôi có thể mở rộng trình hướng dẫn của mình.
Đúng.
Vì vậy, giả sử rằng trình hướng dẫn này có một init.
Phương pháp.
Điều này sẽ được chạy khi trình hướng dẫn được tạo.
Và chúng tôi sẽ có một.
Tên.
Và sức mạnh mà chúng tôi nhận được.
Và ở đây chúng ta sẽ gán tên tự cho tên bằng và sau đó tự chấm lũy thừa thành lũy thừa.
Và chúng ta cũng hãy thêm một phương pháp khác.
Gọi nó là tấn công.
Và phương pháp tấn công này sẽ chỉ đơn giản là in ra một chuỗi F sẽ nói.
Tấn công với.
Sức mạnh của.
Hãy nói năng lực bản thân.
Và sau đó chúng ta sẽ làm điều tương tự đối với Cung thủ.
Vì vậy, tôi sẽ sao chép mã này.
Dán nó vào đây.
Và người bắn cung sẽ có tên.
Và chúng ta hãy nói thay vì quyền lực, chúng ta sẽ nói rằng nó có, giả sử.
Số lượng mũi tên.
Và số lượng mũi tên.
Sẽ là thuộc tính mới mà nó nhận được.
Và sau đó cuộc tấn công sẽ có tốt, tấn công bằng mũi tên.
Và sau đó chúng ta sẽ còn lại các mũi tên.
Một mũi tên bên trái sẽ chỉ cho biết số lượng mũi tên và chúng ta có thể làm điều gì đó thú vị khi các mũi tên
giảm xuống mỗi khi bạn tấn công.
Được chứ.
Vì vậy, bây giờ chúng ta đã có cái này, hãy làm cho cái này nhỏ hơn một chút để bạn có thể thấy.
Của bạn đây.
Bây giờ chúng ta đã có cái này, hãy khởi tạo trình hướng dẫn đầu tiên.
Với.
Giả sử Merlin, với sức mạnh 50.
Và sau đó là cung thủ.
Chúng tôi sẽ ngay lập tức.
Với vai Robin, giả sử 500 mũi tên hoặc 100 mũi tên.
Vì vậy, bây giờ sẽ có thuật sĩ và cung thủ.
Chà, họ sẽ đăng nhập.
Nhưng họ cũng sẽ có cuộc tấn công, nhưng là duy nhất cho cá nhân của họ.
Các lớp học.
Và chúng cũng sẽ có các thuộc tính khác nhau.
Chúng ta hãy có một cái nhìn.
Nếu tôi làm Wizard Dot.
Ông. Thuật sĩ.
Một dấu chấm.
Bây giờ chúng ta sẽ nói.
Tấn công.
Và hãy để tôi quay lại.
Trí thông minh mã của tôi.
Chúng tôi sẽ thấy rằng chúng tôi có một vài lỗi.
Nơi đây.
Những gì nó nói.
Tên tự không được xác định và đó là do tôi quên tự trong ngoặc nên bạn nhớ rằng chúng ta luôn phải cung
cấp tham số đầu tiên là tự.
Nếu chúng ta cuộn xuống, chúng ta đến Wizard Dot, chúng ta thấy rằng chúng ta có tên, sức mạnh và đòn tấn công.
Nếu tôi nhấp vào tấn công ở đây và tôi chạy.
Thấy rằng tôi đang tấn công với sức mạnh 50.
Nếu tôi làm vậy, bắn cung tấn công một chấm.
Trong trường hợp đó, tôi sẽ tấn công bằng mũi tên.
Mũi tên sang trái 100.
Nhưng cả hai đều có chức năng đăng nhập cùng một lúc.
Làm thế nào là mát đó là?
Đây là sức mạnh của sự kế thừa.
Chúng tôi đang giữ cho mã của chúng tôi khô ráo, phải không?
Chúng tôi đang trừu tượng hóa phần mã mà cả hai đều chia sẻ, nhưng sau đó thay đổi mọi thứ theo
những gì mỗi người cần.
Vì vậy, ví dụ, tôi có thể có các phương thức và thuộc tính trên Wizard khác với Archer, nhưng cũng có
chức năng người dùng được chia sẻ của người dùng mà họ có.
Và bằng cách này, nó giữ cho mã của chúng ta có tổ chức và sạch sẽ.
Bây giờ chúng ta hãy phóng to trở lại để bạn có thể thấy rõ.
Giờ đây, ý tưởng kế thừa này thực sự rất mạnh mẽ.
Và mấu chốt ở đây là chúng ta có lớp cha mẹ và lớp con cái.
Bây giờ, đôi khi các lớp con này được gọi là lớp con hoặc lớp dẫn xuất vì chúng là lớp con của
người dùng hoặc được dẫn xuất từ lớp người dùng.
Hãy cùng khám phá chủ đề này một chút trong video tiếp theo.