Vài điều cần chú ý trong Thừa kế (Extends) và Đa hình (Poly)
Kế thừa và đa hình là những khái niệm rất quan trọng của OOP trong Java hôm nay trong bài viết này tôi sẽ đề cập đến một số lưu ý khi nghiên cứu phần này.
I.Nhắc lại vài kiến thức
Trước hết để hiểu kế thừa và đa hình là gì chúng ta cần hiểu rõ các định nghĩa Class , constructor (cấu tử), đối tượng đã
-> Class là nơi bạn tạo ra đối tượng xây dựng đối tượng từ những thuộc tính và phương thức được khai báo trong lớp đó.
->Constructor là cấu tử dùng để gán giá trị cho các thuộc tính của đối tượng.
-> Đối tượng là sự thể hiện của một lớp là thứ mà Class hướng đến để xây dựng nói rõ hơn là khởi tạo.
II. Kế thừa.
-> Đi đến vấn đề chính mà chúng ta cần thảo luận.cần một vài ví dụ để làm rõ định nghĩa này .Trong ví dụ này có vài class tham gia vào minh họa.
- Class Animal : Là lớp nền tảng chung có các đặc tính chung cho mọi con vật.
- Class Cat là class con của class animal.
- Class Mouse là class con của class animal.
- Class Duck là class con của class anmal.

-> Ở trong class này chúng ta có một phương thức không có phần thân (phương thức trừu tượng) là getAnimal ý nghĩa của phương thức này là chúng ta trả về tên của con vật nhưng khai báo ở loại trừu tượng khiến tôi đoán rằng chúng ta phải mở rộng và phát triển nó ở các lớp con nó chỉ thể hiện nó sẽ làm gì còn làm gì thì để các lớp con làm rõ ((: .Tất nhiên lớp Animal phải là lớp trừu tượng vì nó chứa phương thức trừu tượng

-> Ở trong lớp này chúng ta xây dựng lớp Cat từ lớp Animal vì lớp Animal có phương thức trừu tượng nên lớp cat bắt buộc phải triển khai phương thức trừu tượng.Từ khóa super sẽ gọi lại các cấu tử của lớp Animal để khởi tạo sau đó mới đến các cấu tử của lớp con . nếu chúng ta để trống thì sẽ chương trình sẽ gọi cấu tử mặc định của lớp cha.
Ví dụ như chúng ta khởi tạo một đối tượng :
Cat meo = new Cat("abc",15,10);
thì giá trị abc sẽ được truyền vào hàm super cho biến name , tất nhiên đây là biến name của lớp Cat thôi.
Cái này gọi là kế thừa -> lớp con sử dụng lại thuộc tính và phương thức của lớp cha để phát triển và sử dụng theo cách của riêng mình.
III. Đa hình.
+ Đa hình có thể hiểu hơi trừu tượng là bạn thực hiện một việc theo nhiều cách , chúng ta có thể thực hiện trong java bởi vì ghi đè phương thức con nạp chồng phương thức mình chưa hiểu rõ lắm.
Ví như bạn nói với người Mỹ rằng mình là người Việt Nam nhưng nếu nói với người Việt Nam thì bạn lại nói mình là người Bắc Ninh cả 2 việc này không cái nào sai nhưng phải tùy vào phương tiện và hoàn cảnh.
+ Chúng ta cũng có thể hiểu theo cách ở trường đối tượng Person có vai trò là sinh viên có nhiệm vụ học tập ở nhà chúng ta có nhiệm vụ khác vai trò khác trong mỗi hoàn cảnh khác nhau.
+ Khi chúng ta khai báo biến tham chiếu thì ở trong quá trình compiletime nó mới xác định kiểu của đối tượng mà thôi tiếp đến trong quá trình runtime thì mới xác định biến trỏ đến đối tượng nào.
-> Có 2 loại đa hình là đa hình tại RunTime và đa hình tại Compiletime chúng ta sẽ chủ yếu nghiên cứu về đa hình tại RunTime.
-> Một thứ rất quan trọng của đa hình là sự ghi đè (overiding) và tính đa hình không áp dụng với biến và phương thức tĩnh (static) cũng như biến thường ok ((:
I.Nhắc lại vài kiến thức
Trước hết để hiểu kế thừa và đa hình là gì chúng ta cần hiểu rõ các định nghĩa Class , constructor (cấu tử), đối tượng đã
-> Class là nơi bạn tạo ra đối tượng xây dựng đối tượng từ những thuộc tính và phương thức được khai báo trong lớp đó.
->Constructor là cấu tử dùng để gán giá trị cho các thuộc tính của đối tượng.
-> Đối tượng là sự thể hiện của một lớp là thứ mà Class hướng đến để xây dựng nói rõ hơn là khởi tạo.
II. Kế thừa.
-> Đi đến vấn đề chính mà chúng ta cần thảo luận.cần một vài ví dụ để làm rõ định nghĩa này .Trong ví dụ này có vài class tham gia vào minh họa.
- Class Animal : Là lớp nền tảng chung có các đặc tính chung cho mọi con vật.
- Class Cat là class con của class animal.
- Class Mouse là class con của class animal.
- Class Duck là class con của class anmal.

-> Ở trong class này chúng ta có một phương thức không có phần thân (phương thức trừu tượng) là getAnimal ý nghĩa của phương thức này là chúng ta trả về tên của con vật nhưng khai báo ở loại trừu tượng khiến tôi đoán rằng chúng ta phải mở rộng và phát triển nó ở các lớp con nó chỉ thể hiện nó sẽ làm gì còn làm gì thì để các lớp con làm rõ ((: .Tất nhiên lớp Animal phải là lớp trừu tượng vì nó chứa phương thức trừu tượng
-> Ở trong lớp này chúng ta xây dựng lớp Cat từ lớp Animal vì lớp Animal có phương thức trừu tượng nên lớp cat bắt buộc phải triển khai phương thức trừu tượng.Từ khóa super sẽ gọi lại các cấu tử của lớp Animal để khởi tạo sau đó mới đến các cấu tử của lớp con . nếu chúng ta để trống thì sẽ chương trình sẽ gọi cấu tử mặc định của lớp cha.
Ví dụ như chúng ta khởi tạo một đối tượng :
Cat meo = new Cat("abc",15,10);
thì giá trị abc sẽ được truyền vào hàm super cho biến name , tất nhiên đây là biến name của lớp Cat thôi.
Cái này gọi là kế thừa -> lớp con sử dụng lại thuộc tính và phương thức của lớp cha để phát triển và sử dụng theo cách của riêng mình.
III. Đa hình.
+ Đa hình có thể hiểu hơi trừu tượng là bạn thực hiện một việc theo nhiều cách , chúng ta có thể thực hiện trong java bởi vì ghi đè phương thức con nạp chồng phương thức mình chưa hiểu rõ lắm.
Ví như bạn nói với người Mỹ rằng mình là người Việt Nam nhưng nếu nói với người Việt Nam thì bạn lại nói mình là người Bắc Ninh cả 2 việc này không cái nào sai nhưng phải tùy vào phương tiện và hoàn cảnh.
+ Chúng ta cũng có thể hiểu theo cách ở trường đối tượng Person có vai trò là sinh viên có nhiệm vụ học tập ở nhà chúng ta có nhiệm vụ khác vai trò khác trong mỗi hoàn cảnh khác nhau.
+ Khi chúng ta khai báo biến tham chiếu thì ở trong quá trình compiletime nó mới xác định kiểu của đối tượng mà thôi tiếp đến trong quá trình runtime thì mới xác định biến trỏ đến đối tượng nào.
-> Có 2 loại đa hình là đa hình tại RunTime và đa hình tại Compiletime chúng ta sẽ chủ yếu nghiên cứu về đa hình tại RunTime.
-> Một thứ rất quan trọng của đa hình là sự ghi đè (overiding) và tính đa hình không áp dụng với biến và phương thức tĩnh (static) cũng như biến thường ok ((:
Nhận xét
Đăng nhận xét