‫Chào mừng bạn trở lại ví dụ về tính đa hình.
‫Trong video này, tôi sẽ sử dụng một cách tiếp cận khác mà trước hết, bạn sẽ gặp một chút thử thách.
‫Bạn nên viết một số mã sẽ giúp bạn hiểu về kế thừa xa hơn hoặc tốt hơn một chút.
‫Và sau đó chúng ta sẽ đi vào các dạng poly, tạo thành một phần của toàn bộ chương trình này.
‫Vì vậy, hãy tiếp tục và cố gắng viết mã theo thử thách này tại đây.
‫Vì vậy, hãy tạm dừng video và thử.
‫Được rồi.
‫Tôi hy vọng bạn đã thử nó.
‫Vì vậy, tôi sẽ tạo một lớp ed class mới và tôi sẽ gọi nó là ô tô.
‫Và hạng này chỉ là hạng ô tô thông thường.
‫Và nó có thể chứa hoặc nó phải chứa các thuộc tính.
‫Đúng.
‫Như tôi đã nói, nó phải có một thuộc tính gọi là HP Prop và nó phải là một số nguyên và HP sẽ là
‫mã lực.
‫Vậy sức mạnh của chiếc xe này như thế nào?
‫Và sau đó thuộc tính khác thuộc loại chuỗi và màu nào?
‫Bây giờ những gì tôi cần tiếp theo là có một hàm tạo.
‫Vì vậy, tôi sẽ tạo ra một chiếc xe công cộng có HP và màu sắc.
‫Và ở đây tôi chỉ đặt HP chấm này là HP và chấm này là màu.
‫Vì vậy, màu này sẽ là màu thuộc tính của chúng ta và HP sẽ là HP của lớp chúng ta hoặc của đối tượng của chúng
‫ta được tạo ra từ ô tô loại.
‫Bây giờ cái tiếp theo sẽ là phương pháp hiển thị chi tiết.
‫Vì vậy, khoảng trống công khai hiển thị chi tiết.
‫Và ở đây chúng tôi chỉ viết một cái gì đó lên bảng điều khiển.
‫Vì vậy, CW, HP sẽ được cộng thêm HP.
‫Sau đó, chúng tôi có màu sắc, mà phải là một cái gì đó giống như màu sắc.
‫Vì vậy, tất nhiên tôi có thể sử dụng một cách tiếp cận khác mà tôi sử dụng thao tác chuỗi ở đây, nhưng tôi sẽ giữ
‫nó như thế này.
‫Rất đơn giản.
‫Vì vậy, cái tiếp theo là một khoảng trống công cộng và nó được gọi là sửa chữa.
‫Và chúng tôi sẽ thay đổi hai phương pháp đó sau.
‫Vì vậy, không phải lo lắng.
‫Nhưng hiện tại, tôi muốn giữ chúng rất đơn giản.
‫Với các cách tiếp cận mà chúng tôi đã sử dụng cho đến nay, điều đó sẽ làm rõ hơn tính đa hình làm và ở
‫đây chỉ nói rằng xe đã được sửa chữa.
‫Được rồi, đó là xe của chúng tôi và đó là lớp cơ bản của chúng tôi.
‫Và bây giờ chúng tôi cần hai hạng khác, đó là hạng BMW, hạng BMW của chúng tôi.
‫Và ở đây, như tôi đã nói, chúng ta có một thuộc tính bổ sung được gọi là mô hình và đây là một mô hình chuỗi.
‫Bây giờ, một khía cạnh khác là thương hiệu, đó là một thành viên tư nhân.
‫Vì vậy, thương hiệu chuỗi tư nhân và nó được gọi là BMW.
‫Bây giờ tiếp theo chúng ta cần một nhà xây dựng, vì vậy một chiếc BMW công cộng.
‫Và trước khi tôi làm điều đó, trước khi tôi tạo phương thức khởi tạo, tôi muốn kế thừa từ ô tô.
‫Vì vậy, bây giờ chiếc BMW của tôi sẽ kế thừa từ ô tô.
‫Và những gì tôi cần ở đây là HPP, sau
‫đó là màu sắc và kiểu máy và đây là dấu phẩy.
‫Vì vậy, những gì tôi có thể làm là tôi có thể đặt HPP thành HPP thực sự, tôi thậm chí có thể tiếp tục và làm điều tương tự với
‫màu sắc.
‫Nó sẽ là màu sắc và mô hình là tài sản của chúng ta nên là mô hình.
‫Vì vậy, cái này ở đây, ở đó, tôi sử dụng cái này bởi vì tôi muốn nó cho đối tượng này và điều tương tự tôi có thể
‫làm ở đây và tôi có thể làm ở đây.
‫Vì vậy, mặc dù tôi không tạo những cái đó ở đây, như bạn thấy, tôi vẫn có thể sử dụng chúng.
‫Bây giờ, đây là thứ mà bạn chưa thấy, đó là cơ sở.
‫Vì vậy, tôi có thể sử dụng từ khóa cơ sở ở đây và sau đó tôi có thể nói đơn giản, được rồi, tôi muốn sử dụng HPP và màu
‫của lớp cơ sở của mình và sau đó tôi không cần hai dòng đó nữa nên tôi thậm chí có thể loại bỏ chúng.
‫Như bạn có thể thấy bây giờ, lỗi cũng biến mất.
‫Vì vậy, bây giờ chúng ta đã tạo một hàm tạo sử dụng hàm tạo cơ sở của cơ sở của chúng ta, có nghĩa là lớp cơ
‫sở của chúng ta, là xe của chúng ta.
‫Nó sẽ chỉ sử dụng hàm tạo này và nó sẽ chỉ thêm mô hình.
‫Vì vậy, bây giờ chúng ta có một hàm tạo rất ngắn thực hiện tất cả công việc, tất cả công việc.
‫Vì vậy, bây giờ những gì tôi cần tiếp theo là một chi tiết hiển thị trống, như tôi đã nói.
‫Và ở đây tôi chỉ muốn hiển thị chi tiết và tôi sẽ sao chép phương thức từ đây hoặc mục nhập
‫của phương thức.
‫Và ở đây nó sẽ là thương hiệu đầu tiên.
‫Vì vậy, thương hiệu cộng với thương hiệu cộng với HP.
‫Vì vậy, bây giờ nó sẽ chỉ hiển thị một số chi tiết bổ sung.
‫Và ở đây, như bạn thấy, hiển thị chi tiết, ẩn, hiển thị chi tiết xe thành viên kế thừa, hãy sử dụng từ
‫khóa mới nếu có ý định ẩn.
‫Và đó là điều mà chúng tôi sẽ đề cập trong video tiếp theo.
‫Nhưng bây giờ, hãy cũng tạo ra phương pháp sửa chữa, sửa chữa khoảng trống công cộng.
‫Và ở đây nó chỉ nên nói một cái gì đó giống như BMW
‫và ở đây đã được sửa chữa.
‫Vậy số 0 này là gì mà tôi có ở đó?
‫Đó là mô hình.
‫Vì vậy, tôi chỉ muốn biết mẫu xe và tôi sẽ nói, giả sử BMW, Z, Phi, az4 hoặc MX 3
‫hoặc MX 5 đã được sửa chữa.
‫Vì vậy, đó là những gì điều này nên làm.
‫Và bây giờ tôi cần một cái khác, một lớp khác, khá giống với những gì chúng ta có ở đây.
‫Vì vậy, tôi sẽ tạo ra một đẳng cấp mới và tôi sẽ gọi nó là Audi.
‫Và để đơn giản, tôi chỉ sẽ sao chép hầu hết những thứ ở đây, thực sự là cả lớp, bởi vì nó
‫sẽ rất giống nhau.
‫Điều khác biệt ở đây là đó là một chiếc Audi và chúng tôi lấy Audi làm công ty xây dựng và tất nhiên nó cần
‫phải kế thừa từ ô tô.
‫Vì vậy, bây giờ điều đó đã được thực hiện và bây giờ đến phần đa hình.
‫Vì vậy, chúng tôi có một chiếc Audi thuộc loại ô tô, chúng tôi có một chiếc BMW cũng là loại ô tô.
‫Và chúng ta có lớp cơ sở này là ô tô, và bây giờ chúng ta có thể tiếp tục và tạo nhiều đối tượng của lớp đó.
‫Bây giờ nó sẽ có ý nghĩa hơn rất nhiều ngay sau khi chúng tôi đến đó.
‫Vì vậy, hãy tiếp tục và tạo một biến mới có tên là ô tô, đây sẽ là một danh sách các ô tô mới.
‫Và mặc dù đây là danh sách các loại xe, vì vậy đối với loại xe, chúng tôi có thể tạo ra tất cả những thứ này và BMW đã có mặt ở
‫đây.
‫Vì vậy, chỉ có thể tạo ra, giả sử một chiếc Audi màu xanh lam và là một chiếc A bốn.
‫Sau đó, chúng tôi có một chiếc BMW mới, giả sử 250 HP và giả sử là một chiếc xe màu đỏ và nó là MX 3.
‫Vì vậy, đó là một phần của tính đa hình mà bạn có thể sử dụng các lớp con thay vì lớp cơ sở hoặc các lớp dẫn
‫xuất thay vì lớp cơ sở khi làm việc, ví dụ, với các danh sách hoặc nói chung và nói
‫chung, bạn sẽ hiểu ý tôi.
‫Vì vậy, những gì tôi sẽ làm là tôi sẽ chạy cho mỗi vòng lặp, sẽ kiểm tra tất cả
‫các xe của tôi trong danh sách xe của tôi.
‫Và nó sẽ chỉ viết một cái gì đó như sửa chữa ô tô hoặc nó sẽ gọi một phương pháp sửa chữa.
‫Được rồi, chúng ta hãy gọi cái đó hoặc hãy chạy cái đó.
‫Nhưng trước khi làm điều đó, chúng ta cần điều khiển đúng phím.
‫Bởi vì nếu không chương trình của chúng tôi sẽ đóng lại.
‫Vậy là bạn đây rồi.
‫Xe đã được sửa chữa.
‫Vì vậy, bây giờ nó đang gọi phương thức ô tô ở đây.
‫Cái nào đây là cái nào ở đây?
‫Xe đã được sửa chữa.
‫Vì vậy, nó không gọi phương pháp sửa chữa này và cũng không gọi phương pháp sửa chữa này, đó là chiếc BMW
‫đã được sửa chữa hay ở đây nó thực sự ở đây nó phải là âm thanh hoặc Audi.
‫Audi đã được sửa chữa.
‫Vậy tại sao nó lại gọi phương pháp sửa chữa xe hơi của chúng ta mà không phải phương pháp sửa chữa của BMW và Audi là
‫phương pháp liên quan đến hai điều.
‫Vì vậy, một trong số chúng là chúng tôi có sửa chữa khoảng trống này, không phải là một ảo.
‫Vì vậy, nếu chúng ta làm cho nó sửa chữa khoảng trống ảo, những gì chúng ta có thể làm, chẳng hạn như ở đây, chúng ta có thể ghi đè nó.
‫Vì vậy, bây giờ chúng ta có thể ghi đè phương pháp sửa chữa.
‫Điều đó sẽ làm là nếu chúng ta chạy lại mã.
‫Chúng ta sẽ xem.
‫Xe đã được sửa chữa.
‫Đó là chiếc Audi của chúng tôi, chiếc đầu tiên.
‫Và sau đó chiếc BMW M ba đã được sửa chữa và đó là chiếc thứ hai.
‫Và đó là bởi vì lớp BMW của chúng tôi ở đây đã ghi đè phương pháp sửa chữa.
‫Vì vậy, chúng ta có thể chỉ cần sử dụng phương thức này, làm cho nó ảo và điều đó cho phép chúng ta ghi đè nó trong các lớp
‫dẫn xuất.
‫Và đó là những gì chúng tôi đã làm ở đây.
‫Vì vậy, bây giờ có hai khía cạnh của đa hình.
‫Vì vậy, mạng đa hình một và ODI và VW, Porsche, bất kỳ lớp nào khác nhau mà bạn muốn có, tất cả đều có thể được sử
‫dụng ở bất cứ nơi nào mong đợi một chiếc xe hơi.
‫Vì vậy, bất cứ khi nào chúng kế thừa từ lớp này ở đây, từ lớp xe của chúng ta ở đây, lớp này, chúng ta có thể đơn giản sử dụng nó để
‫thay thế.
‫Và khía cạnh thứ hai của tính đa hình là phương thức ảo có thể được gọi trên mỗi lớp dẫn
‫xuất, không phải trên lớp cơ sở.
‫Vì vậy, đó là điều mà chúng tôi đã làm với BMW và bây giờ chúng tôi có thể làm điều tương tự với đơn đặt hàng của chúng tôi tại đây.
‫Vì vậy, tôi cũng sẽ ghi đè điều đó.
‫Ghi đè, vô hiệu hóa, sửa chữa.
‫Bây giờ chúng ta hãy chạy lại nó.
‫Và bây giờ cả hai nên giới thiệu thương hiệu và mô hình của họ.
‫Vì vậy, chúng tôi thấy Audi A4 và BMW M3 đã được sửa chữa.
‫Tuy nhiên, có một điều nữa về tính đa hình.
‫Vì vậy, nếu bạn muốn ẩn các thành viên lớp cơ sở với các thành viên mới, bạn có thể sử dụng từ khóa mới.
‫Vì vậy, giả sử chúng ta có phương thức hiển thị chi tiết void này trong xe lớp của chúng ta, phương thức này chỉ là một khoảng trống.
‫Nó không phải là một khoảng trống ảo.
‫Và bây giờ nếu tôi muốn ghi đè điều đó, vì vậy không ghi đè theo nghĩa mà chúng tôi đã làm ở đây
‫với ghi đè.
‫Nhưng tôi thực sự muốn sử dụng phương pháp này thay thế bất cứ khi nào tôi đang sử dụng một chiếc BMW và không phải với ý nghĩa đè lên
‫chiếc cũ, mà chỉ cần ẩn một chiếc khỏi xe và sử dụng các chi tiết hiển thị thay thế.
‫Tôi có thể sử dụng từ khóa mới.
‫Vì vậy, những gì sẽ làm là nó sẽ nói một cách đơn giản, được rồi, chi tiết chương trình này được ưu tiên hơn chi tiết chương
‫trình xe hơi.
‫Vì vậy, nó không phải là ghi đè lên nó, mà là đánh giá lại nó.
‫Vậy bây giờ tôi phải bắn như thế nào?
‫Hiển thị phương pháp hiển thị chi tiết này hoặc sử dụng phương pháp hiển thị này?
‫Chúng ta hãy tạo ra một chiếc BMW pmwz3 mới, đây sẽ là một chiếc xe BMW mới với 200 mã lực.
‫Hãy làm cho nó màu đen.
‫Và sau đó là mô hình az3.
‫Và sau đó chúng ta cũng hãy tạo ra một chiếc Audi, Audi một chiếc ba.
‫Nó sẽ là một chiếc Audi mới với, giả sử, 100 mã lực.
‫Và cái này là màu xanh lá cây.
‫Màu sắc rất lạ cho một chiếc xe hơi.
‫Và sau đó bạn có một mô hình ba ở đây.
‫Bây giờ, hãy chạy BMW và hiển thị chi tiết phương pháp ở đây.
‫Và điều tương tự đối với Audi.
‫Audi.
‫Một ba để hiển thị chi tiết.
‫Vì vậy, hãy chỉ chạy điều đó.
‫Và bạn thấy HP 200, màu đen HP 100 màu xanh lá cây.
‫Vì vậy, như bạn thấy, nó đang gọi phương thức hiển thị chi tiết xe hơi và nó không gọi phương thức từ BMW.
‫Và đó là bởi vì chúng tôi đã tạo ra nó như một chiếc ô tô, nhưng nó là một chiếc BMW mới như một chiếc ô tô.
‫Vì vậy, nếu chúng ta làm điều tương tự bây giờ, hãy tiếp tục và tạo ra một chiếc BMW MX
‫5, sẽ không phải là một chiếc ô tô, mà lần này là một chiếc BMW mới hạng B, M W và chiếc này, giả sử, có công suất 330 mã lực.
‫Nó màu trắng và là MX 5.
‫Vì vậy, bây giờ nếu tôi gọi đây là phương pháp hiển thị chi tiết năm chấm B M W MX, nó sẽ hiển thị thương hiệu
‫cho tôi và chúng tôi là thương hiệu BMW, HP 330 màu trắng.
‫Và những người đầu tiên.
‫Vì vậy, những người ở đây.
‫Họ cũng phải đưa ra phương pháp chi tiết, nhưng họ đã sử dụng một chiếc xe hơi và bây giờ chiếc xe BMW sử dụng
‫một chiếc xe của BMW.
‫Vì vậy, mặc dù chúng tôi nói là BMW mới, chúng tôi vẫn sử dụng lớp ô tô để tạo ra một đối tượng ô tô mà
‫bên trong là BMW, nhưng chúng tôi gọi các phương thức ô tô chứ không phải các phương thức BMW chỉ khi chúng tôi tiếp tục và tạo ra
‫nó như một chiếc BMW mà chúng tôi gọi là phương pháp mới.
‫Vì vậy, cái mới này ở đây, nó chỉ đơn giản nói, được rồi, nếu bạn tạo một đối tượng của tôi, thì hãy tiếp tục và viết nó
‫như mới.
‫Nếu bạn không, hãy tiếp tục và chỉ cần sử dụng phương pháp của ô tô hoặc của lớp xe với lớp cơ sở
‫khá nhiều.
‫Nhưng nếu tôi muốn gọi phương thức hiển thị chi tiết của lớp cơ sở lên đối tượng BMW của mình thì sao?
‫Sau đó, tôi có thể làm như sau.
‫Tôi có thể tiếp tục và tạo ra một chiếc xe mà tôi sẽ gọi là ô tô B, nó sẽ là một chiếc BMW m năm.
‫Nhưng nó sẽ như vậy.
‫Xe hơi.
‫Vì vậy, ở đây tôi đang sử dụng tính năng đúc để tôi đang đúc chiếc BMW của mình thành một chiếc ô tô và bây giờ tôi có thể
‫tiếp tục và sử dụng các chi tiết hiển thị b dot ô tô của chiếc BMW MX 5 của tôi.
‫Hoặc của chiếc xe của tôi để chúng tôi một lần nữa màu hpp 330 màu trắng.
‫Vì vậy, đó là BMW m năm của chúng tôi ở đây.
‫Vì vậy, tại sao bạn thậm chí sẽ sử dụng cách tiếp cận ẩn và sử dụng từ khóa mới này ở đây cho các thành viên của bạn?
‫Chà, bạn sẽ sử dụng nó nếu bạn muốn thành viên dẫn xuất của mình có cùng tên
‫với một thành viên trong lớp cơ sở, nhưng bạn không muốn nó tham gia vào một lệnh gọi ảo.
‫Vì vậy, đó là khi bạn sử dụng từ khóa mới này mà chúng ta đã thấy ở đây.
‫Mặt khác, nếu bạn muốn ghi đè nó, bạn có thể chỉ cần sử dụng phương pháp ghi đè này tại đây hoặc
‫từ khóa ghi đè này trong khai báo phương pháp của bạn.
‫Được rồi.
‫Vì vậy, đó là một cái gì đó khá hoặc đa hình.
‫Trong video tiếp theo, chúng tôi sẽ kiểm tra cách chúng tôi có thể ngăn chặn điều đó.
‫Vì vậy, nếu bạn không muốn một phương thức có thể bị ghi đè.
‫Có một cách để làm điều đó trong lớp cơ sở của chúng tôi.
‫Vậy hẹn gặp lại các bạn trong video tiếp theo.