Hãy nói về đa kế thừa, điều mà bạn có thể thực hiện bằng Python.
Bây giờ, hãy nhớ rằng, chúng tôi có các lớp hướng dẫn người dùng và cung thủ của chúng tôi.
Chúng tôi đang cố gắng xây dựng trò chơi đó ngay bây giờ.
Hãy làm sạch một số mã này.
Chúng tôi sẽ không cần hàm init nữa.
Chúng tôi sẽ chỉ có người dùng ở đây.
Chúng tôi có thuật sĩ kế thừa từ người dùng và cung thủ kế thừa từ người dùng.
Nhưng điều gì sẽ xảy ra nếu chúng ta muốn tạo một nhân vật mới và nhân vật này được gọi là một lớp, hãy nói.
Giả sử nó được gọi là hybrid Borg hoặc chúng tôi là tên.
Tôi biết.
Nhưng đây là điều.
Hybrid Borg là một loại nhân vật đặc biệt vì nó có sức mạnh mà các pháp sư có, đó là tấn công.
Nó có sức mạnh mà các cung thủ có được, đó là những mũi tên của người Séc.
Và chỉ để cho vui, hãy cũng ad chạy tại đây.
Và chúng tôi sẽ chỉ nói bốn lần chạy rất nhanh.
Được rồi.
Vì vậy, chúng tôi muốn Borg lai này có tất cả các phương pháp này.
Chúng ta có thể làm điều đó?
Chà, chúng ta có thể.
Tất cả những gì chúng ta cần làm là nói Wizard và sau đó là Archer.
Chúng tôi có thể cung cấp cho nó bao nhiêu tham số tùy thích.
Như nhiều phần thừa kế mà chúng tôi đang thừa hưởng từ Wizard và Archer.
Vì vậy, ở đây, hãy nói rằng tôi không làm gì cả và tôi sẽ vượt qua.
Nếu tôi khởi tạo, giả sử Borg lai.
Một là sẽ được lai.
Lớp Borg khởi tạo nó.
Bây giờ tôi có thể sử dụng tất cả những thứ này.
Hãy kiểm tra chúng.
Giả sử in HP một chấm chạy.
Tôi có thể làm điều đó?
Và một lần nữa, một lỗi chính tả nhỏ.
Hãy chắc chắn rằng đó là Borg lai lai, không phải bo mạch lai.
Tôi hy vọng bạn không chán video này.
Được rồi, tôi có lỗi.
Thiếu hai đối số vị trí bắt buộc.
Tên và quyền lực.
Được rồi, bởi vì.
Chà, chúng ta phải chuyển những thứ này vào.
Đúng.
Nó chấp nhận các tham số này.
Được chứ.
Vì vậy, hãy nói rằng chúng tôi muốn có một cái tên.
Borghi và sức mạnh là 50 nếu tôi chạy cái này.
Được rồi.
Có vẻ như Ran rất nhanh.
Chạy hoạt động.
Tôi đã có thể kế thừa từ Archer.
Còn mũi tên tiếng Séc thì sao?
Nếu tôi bấm Chạy.
Ồ.
Tôi nhận được borg lai.
Đối tượng không có mũi tên thuộc tính.
Hiện nay.
Tại sao vậy?
Vì về mặt kỹ thuật chúng tôi.
Được kế thừa từ Wizard trước, sau đó Archer và Wizard chấp nhận.
Tên và quyền lực.
Nhưng chúng tôi không bao giờ cung cấp cho các mũi tên, tên và các mũi tên.
Hừ!
Vì vậy, làm thế nào chúng ta có thể giải quyết điều đó?
Hãy thử một cái gì đó.
Giả sử chúng tôi đã thêm các mũi tên ở đây.
100 với tác phẩm này.
Hừ!
Điều đó không hoạt động, phải không?
Và đây là một điều khó khăn với đa kế thừa và tại sao một số ngôn ngữ lập trình thực sự không
cho phép đa kế thừa.
Mọi thứ có thể trở nên phức tạp một chút vì trong đầu bạn, bạn phải đảm bảo rằng bạn hiểu cách các lớp này
được triển khai và đảm bảo rằng chúng ta không ghi đè bất cứ thứ gì.
Trong trường hợp của chúng tôi, chúng tôi có thể phức tạp mã của mình một chút.
Vậy chúng ta có thể làm gì ở đây?
Ở đây, có lẽ tôi có thể làm điều gì đó như thế này.
Tôi có thể nói xác định trong đó.
Điều này nhận được tự.
Nó sẽ nhận được một cái tên là một sức mạnh.
Và cả nữa.
Các mũi tên.
Và cuối cùng ở đây, tôi có thể nói rằng chúng tôi cũng sẽ gọi là Cung thủ.
Chấm vào đó.
Và đó là sẽ bán tháo và sau đó sang tên.
Và những mũi tên.
Vì vậy, nếu tôi chạy điều này.
Chà, hãy thêm 100 mũi tên vào đây và tôi bấm chạy.
Của bạn đây.
Mũi tên hiện đang hoạt động.
Bây giờ chỉ để kiểm tra xem cuộc tấn công của chúng tôi vào trình hướng dẫn cũng đang hoạt động.
Nếu chúng ta tấn công.
Và nhấp vào Chạy.
Oh Boy.
Bây giờ đối tượng lai của chúng ta không có sức mạnh.
Vì vậy, một lần nữa, để chúng ta có sức mạnh, chúng ta sẽ phải sao chép nó và giả sử lần này thuật sĩ tự trong
đó và sau đó cung cấp cho nó sức mạnh.
Nếu tôi bấm Chạy.
Được rồi.
Tấn công hoạt động.
Hãy quay lại kiểm tra Aero.
Hãy chắc chắn rằng chúng tôi không bị hỏng bất cứ thứ gì.
Nếu tôi nhấp vào đó, điều đó cũng hoạt động.
Và cuối cùng, những gì về đăng nhập?
Vâng, đăng nhập vào công việc.
Đăng nhập.
Được rồi.
Oh Boy.
Đó là rất nhiều.
Và có một số cách để thực sự giải quyết vấn đề này.
Tuy nhiên, điều tôi muốn cho bạn thấy là khi bạn thực hiện đa kế thừa, mọi thứ có thể trở nên phức tạp.
Và mặc dù chúng ta đã từng bước giải quyết vấn đề này, hãy tưởng tượng nếu có một lập trình viên nào đó
đi cùng nhóm của bạn tại nơi làm việc và cố gắng hiểu mã này.
Chúng tôi đã thêm khá nhiều logic ở đây và mọi thứ ngày càng trở nên phức tạp hơn và thật khó để theo
dõi mọi thứ trong đầu bạn.
Và đây là lý do tại sao đa kế thừa là một trong những thứ mà nó thực sự, thực
sự mạnh mẽ, nhưng với sức mạnh to lớn đi kèm với trách nhiệm lớn vì chúng ta ngày càng tạo ra nhiều phức tạp hơn.
Một lần nữa, một phần lý do là một số ngôn ngữ lập trình không thực sự cho phép bạn thực hiện đa kế thừa.
Và nhân tiện, tôi sẽ làm bạn bối rối nhiều hơn nữa.
Và video tiếp theo, chúng ta sẽ nói về một thứ gọi là Maro.
Và nó sẽ là một ví dụ tuyệt vời khác về lý do tại sao bạn muốn thận trọng với nhiều tài sản thừa kế.
Tôi sẽ gặp bạn trong đó.
Tạm biệt.