‫Chào mừng trở lại.
‫Trong video này, chúng ta sẽ đề cập đến các lớp trừu tượng và do đó chúng ta sẽ tạo một loạt các
‫lớp mới.
‫Và điều quan trọng là bạn phải hiểu khái niệm về các lớp cũng như tính kế thừa và tính đa hình, bởi vì chúng ta
‫sẽ xây dựng dựa trên điều đó.
‫Và những gì chúng ta bắt đầu là tạo một lớp mới.
‫Vì vậy, hãy tạo một lớp mới.
‫Ở đây chúng ta chuyển đến lớp Project Add, và tôi sẽ tạo một lớp hình dạng và đó sẽ là CSS hình
‫dạng.
‫Bây giờ, ý tưởng là chúng ta muốn tạo một lớp mà chúng ta không muốn tạo bất kỳ đối tượng nào, vì vậy
‫chúng ta sẽ không muốn khởi tạo các hình dạng.
‫Chúng tôi muốn khởi tạo các đối tượng là các loại hình dạng nhưng không phải là hình dạng của chính nó.
‫Vì vậy, ví dụ, một hình dạng sẽ là một khối lập phương hoặc một hình dạng sẽ là một hình cầu.
‫Và tôi đang sử dụng các hình dạng 3D ở đây, phải không?
‫Hình dạng ba chiều.
‫Và tốt, chúng ta sẽ tạo các lớp sẽ kế thừa từ shape, nhưng chúng ta muốn đảm bảo rằng shape là một
‫lớp trừu tượng thực sự, có nghĩa là chúng ta sẽ không thể tạo một đối tượng của nó, nhưng
‫chúng ta sẽ sử dụng nó hệ thống hoặc các phương pháp và thuộc tính của nó.
‫Vậy hãy bắt đầu.
‫Trước hết, hãy làm cho hình dạng này trở nên trừu tượng.
‫Và để làm như vậy, chúng ta có thể sử dụng từ khóa trừu tượng.
‫Vì vậy, bây giờ nó là một lớp trừu tượng.
‫Bây giờ chúng ta hãy tiếp tục chương trình của chúng ta để xem và thấy rằng nó là một lớp trừu tượng thực sự.
‫Vì vậy, chúng ta hãy tạo một hình dạng.
‫Hình dạng một bằng hình dạng mới.
‫Vì vậy, khi chúng tôi cố gắng làm điều đó, bạn có thể thấy rằng không thể tạo một thể hiện của một lớp trừu tượng hoặc hình dạng
‫giao diện.
‫Và vì hình dạng của chúng ta là một lớp trừu tượng, chúng ta không thể tạo các đối tượng của nó, vì vậy chúng ta không thể khởi tạo nó.
‫Đó là một khía cạnh quan trọng ở đây.
‫Được rồi.
‫Bây giờ chúng ta sẽ cần một thuộc tính và tôi sẽ tạo thuộc tính này có tên là tên.
‫Vì vậy, hình dạng cần một cái tên và chúng ta có một getter, v.v. Để tạo ra cái này, tôi chỉ sử dụng pre-prop và sau
‫đó là double tab để tạo một thuộc tính mới.
‫Vì vậy, chúng tôi đã thấy điều đó trong các video khác.
‫Bây giờ tôi muốn có một phương thức và phương thức mà tôi muốn sử dụng sẽ là một phương thức ảo.
‫Khoảng trống ảo nhận được thông tin.
‫Bàn phím ảo mà bạn thấy ở đây được sử dụng để sửa đổi chỉ mục thuộc tính phương thức hoặc sự kiện
‫được khai báo trong lớp cơ sở và cho phép ghi đè trong lớp dẫn xuất.
‫Vì vậy, điều này cho phép chúng tôi ghi đè phương thức nhận thông tin trong một lớp học lái xe.
‫Được rồi.
‫Vì vậy, đó là ý tưởng đằng sau từ khóa ảo này ở đây.
‫Vì vậy, chúng ta chỉ cần thêm một tuyên bố ở đây.
‫Vì vậy, hãy xem w tab kép để kiểm soát dòng bên phải.
‫Và ở đây tôi chỉ muốn viết một cái gì đó như thế này.
‫Đây là một và sau đó là tên của hình dạng.
‫Vì vậy, đây là một cái tên.
‫Và bây giờ ý tưởng đằng sau điều này là tôi muốn có một dòng mới và sau đó tôi muốn có tuyên bố này.
‫Đây là một và sau đó là tên của hình dạng, bởi vì bất cứ khi nào chúng ta tạo một hình dạng, chúng ta có thể đặt
‫tên của nó.
‫Vì vậy, chúng tôi có một khoảng trống ảo.
‫Bây giờ, chúng ta cũng có thể thêm một phương thức trừu tượng.
‫Bây giờ chúng ta hãy làm khối lượng gấp đôi trừu tượng đó.
‫Vì vậy, những gì tôi muốn tính toán là thể tích của một hình dạng.
‫Bây giờ, ở đây, tôi sẽ không thực hiện phương pháp này.
‫Đó là một sự khác biệt quan trọng ở đây.
‫Tôi sẽ không thực hiện nó ở đây.
‫Tôi chỉ nói, được thôi, bất cứ khi nào một lớp muốn kế thừa từ tôi, nó cần triển khai một chức
‫năng cho phương thức khối lượng.
‫Được rồi.
‫Bây giờ, tất nhiên, chúng ta có thể gọi cái này, tính toán khối lượng hoặc những thứ tương tự, nhưng tôi
‫chỉ gọi đây là một tập.
‫Được rồi.
‫Vì vậy, bây giờ chúng ta đã chuẩn bị lớp hình dạng của mình, chúng ta có thể lưu nó và chúng ta có thể tạo một lớp mới.
‫Vì vậy, lớp tiếp theo mà tôi sẽ tạo là lớp khối lập phương.
‫Vì vậy, tôi sẽ tạo Cube, đó là một hình dạng 3D.
‫Vì vậy, bây giờ khối lập phương của tôi sẽ kế thừa từ hình dạng.
‫Bây giờ, nếu tôi làm như vậy, bạn có thể thấy tôi gặp lỗi ở đây.
‫Nó nói rằng Cube không triển khai khối lượng hình dạng thành viên trừu tượng kế thừa.
‫Vì vậy, hiển thị sửa chữa tiềm năng này.
‫Được rồi, hiện thực lớp trừu tượng.
‫Nếu tôi làm như vậy, bạn có thể thấy nó thực hiện phương thức khối lượng này với một câu lệnh ghi đè.
‫Vì vậy, nó nói rằng nó đang ghi đè lên bất cứ thứ gì đã được xác định về hình dạng.
‫Và hình dạng là một lớp trừu tượng và phương thức này là trừu tượng.
‫Như bạn có thể thấy, không có phần thân của phương thức.
‫Nó thực sự chỉ là phần khai báo của phương thức.
‫Vì vậy, bây giờ chúng ta có thể tiếp tục và tất nhiên là thực hiện một cái gì đó.
‫Bạn có thể thấy chúng tôi đưa ra một lỗi ở đây, không phải ngoại lệ được triển khai.
‫Tất nhiên chúng tôi muốn thực hiện một cái gì đó ở đây.
‫Vì vậy, hãy thực hiện một phép tính thể tích trong lớp khối lập phương của chúng ta.
‫Bây giờ để tính toán nó, những gì chúng ta sẽ cần là chúng ta sẽ cần một thuộc tính là chiều dài.
‫Vì vậy, tôi sẽ chỉ tạo thuộc tính mới này có tên là length ở đây và tôi cũng sẽ thêm một phương thức khởi tạo.
‫Vì vậy, Public Cube và bất cứ khi nào tôi muốn tạo một khối lập phương, tôi cần phải vượt qua một độ dài.
‫Vì vậy, đó là những gì tôi đang nói ở đây.
‫Và trong khi tôi đang ở đó, tôi cũng sẽ thêm một cái tên.
‫Vì vậy, như bạn có thể thấy, chúng tôi đang sử dụng kế thừa ở đây vì tên không được định nghĩa trong khối lập phương, nhưng nó được định nghĩa
‫theo hình dạng.
‫Vì vậy, tôi chỉ có thể đặt tên biến ở đây và tôi sẽ đặt độ dài thành độ dài đã được chuyển
‫cho tôi.
‫Vì vậy, độ dài thuộc tính sẽ bằng độ dài với độ dài được truyền khi chúng ta tạo một đối tượng
‫kiểu.
‫Q Vì vậy, đó là ý tưởng đằng sau biến này.
‫Và tiếp theo, chúng ta có thể triển khai phương thức khối lượng này và chúng ta có thể trả về một thứ gì đó.
‫Vì vậy, nó cần phải trả lại một đôi, phải không?
‫Vì vậy, chúng ta cần trả lại một cái gì đó dựa trên double.
‫Và để tính thể tích của một khối lập phương và bằng cách này tôi đang sử dụng một khối lập phương có cùng độ dài trên
‫tất cả các cạnh.
‫Vì vậy, tôi sẽ chỉ nói độ dài cho sức mạnh của ba.
‫Vì vậy, toán học, bột giấy, độ dài ba, có nghĩa là nó sẽ tính độ dài, độ dài nhân lần, độ dài
‫nhân lần.
‫Vì vậy, đây là khối lượng của chúng tôi sẽ là gì và nó sẽ trả về giá trị này.
‫Bây giờ chúng ta có thể tiếp tục và chúng ta cũng có thể triển khai phương pháp này được gọi là get info.
‫Vì vậy, những gì tôi sẽ làm là tôi sẽ sao chép nó và bây giờ tôi sẽ không sử dụng từ
‫khóa ảo, mà ghi đè từ khóa vì tôi muốn ghi đè phương thức nhận thông tin từ cha mẹ tôi ngay bây giờ và ở đây.
‫Nếu tôi làm như vậy, những gì tôi có thể làm là tôi cũng có thể gọi phương thức get info từ lớp cơ sở của mình, có nghĩa là
‫trong trường hợp này, nó cũng sẽ gọi get thông tin từ CSS shape dot.
‫Vì vậy, nó sẽ gọi phương thức này ở đây.
‫Vì vậy, có nghĩa là nó sẽ thực thi mã này và sau đó nó sẽ thực thi bất kỳ mã nào chúng ta thêm vào ở dưới cùng của
‫nó.
‫Vì vậy, tôi sẽ thêm một đoạn văn bản nhỏ ở đây và nó sẽ nói rằng khối lập phương có chiều dài và sau đó tôi sẽ chuyển
‫độ dài ở đây.
‫Vì vậy, độ dài, tất nhiên, tôi cũng có thể tính toán khối lượng ở đây, nhưng tôi sẽ để nó cho bạn.
‫Vì vậy, nếu bạn muốn làm điều đó, hãy thoải mái.
‫Được rồi.
‫Vì vậy, đây là cách chúng ta có thể.
‫Hãy tiếp tục và tạo một lớp sẽ kế thừa từ một lớp khác là lớp trừu tượng.
‫Bây giờ, là một thử thách nhỏ dành cho bạn và tôi sẽ tạm dừng video một lần, bạn nên bắt đầu
‫với một thử thách.
‫Vì vậy, ý tưởng bây giờ là tạo ra một hình dạng khác, là một lớp khác được kế thừa từ hình dạng, và
‫hình dạng phải là một hình cầu.
‫Bây giờ, hãy triển khai cùng một loại chức năng mà bạn có thể thấy ở đây cho Sphere.
‫Được rồi.
‫Chúc may mắn.
‫Đăng video và cố gắng làm điều đó.
‫Được rồi.
‫Vì vậy, tôi hy vọng bạn đã thử nó.
‫Tôi sẽ tạo một lớp mới ở đây và tôi sẽ gọi lớp này là CSS dot hình cầu.
‫Và lớp này nên được kế thừa từ hình dạng.
‫Và tất nhiên, tôi cần triển khai lớp trừu tượng của mình, có nghĩa là tôi cần triển khai phương thức khối lượng
‫này.
‫Tất nhiên bây giờ ở đây tôi có thể tính toán lại hoặc có một thuộc tính, nhưng lần này một thuộc tính hữu ích sẽ không phải là chiều dài, mà
‫nó thực sự sẽ là bán kính, bởi vì chúng ta tính thể tích trong hình cầu khác với
‫chúng ta làm trong một khối lập phương.
‫Và chúng tôi đã không làm điều đó theo hình dạng bởi vì một hình dạng tự nó không thể có khối lượng phải không?
‫Nếu nó không được định nghĩa là một chữ Y, chúng ta không thể tính được thể tích của nó, giả sử như vậy, bởi vì chúng ta không biết nó có
‫dạng hình dạng gì.
‫Đúng.
‫Đó là lý do tại sao chúng ta cần những lớp kế thừa từ hình dạng và thực thi chức năng.
‫Vì vậy, bây giờ tôi có thể tiếp tục và tạo một phương thức khởi tạo, hình cầu công cộng, bán kính gấp đôi.
‫Vì vậy, chúng ta cần một bán kính và sau đó chúng ta có thể tiếp tục và đặt tên của hình cầu, hình cầu
‫sẽ là hình cầu, và chúng ta phải có giá trị thuộc tính bán kính.
‫Vì vậy, chúng tôi chỉ định bán kính được chuyển cho chúng tôi làm giá trị bán kính thuộc tính.
‫Được rồi, bây giờ chúng ta có nó, chúng ta có thể tính toán khối lượng.
‫Vì vậy, bây giờ thay vì ném một ngoại lệ ở đây, tôi muốn tính thể tích của hình cầu của tôi.
‫Và để làm như vậy, tôi cần PI và tôi cần phép tính sau.
‫Vì vậy, toán học bán kính pal đó cho lũy thừa ba và tất cả nhân với ba chia cho oh bốn chia
‫ba.
‫Được rồi.
‫Vì vậy, đây là cách chúng tôi tính toán khối lượng và bây giờ chúng tôi có thể tiếp tục và cũng triển khai phương pháp nhận thông tin.
‫Vì vậy, tôi sẽ sao chép lấy thông tin từ khối của tôi.
‫Tôi sẽ lười biếng.
‫Vì vậy, sao chép phần này ở đây và thực hiện điều tương tự.
‫Vì vậy, chúng tôi sử dụng lại từ khóa override, nó giống hệt như tên của nó trong lớp shape.
‫Và chúng tôi sử dụng thông tin mã cơ sở ở đây để gọi bất kỳ phương thức nào ở đây.
‫Vì vậy, bất cứ điều gì là thân phương thức trong đó và sau đó thay vì truyền chiều dài hoặc nói điều gì đó
‫về chiều dài, chúng ta sẽ nói điều gì đó về bán kính và khối lập phương.
‫Trong trường hợp này, đó là hình cầu có bán kính bằng bán kính.
‫Được rồi.
‫Bây giờ chúng ta đã có tất cả những thứ đó, những gì chúng ta có thể làm bây giờ là chúng ta có thể tiếp tục và tạo các đối tượng
‫của tất cả các lớp khác nhau đó.
‫Vì vậy, tôi sẽ không nói xin chào thế giới ở đây.
‫Thay vào đó, tôi sẽ tạo ra một loạt các hình dạng.
‫Vì vậy, tôi sẽ nói, được rồi, hãy cho tôi một mảng hình dạng.
‫Và nó sẽ là một hình cầu mới có bán kính là bốn và một hình lập phương mới có bán kính là ba.
‫Và trong trường hợp này, thực ra, đó là chiều dài của ba vì Khối lập phương không có bán kính, nó có
‫chiều dài.
‫Và sau đó tôi muốn thực hiện một cái gì đó cho mỗi hình dạng.
‫Vì vậy, đối với hình dạng trong hình dạng, tôi muốn.
‫Xem qua tất cả chúng trong trường hợp này, chỉ hai trong số chúng.
‫Nhưng những gì tôi muốn có là định hình thông tin.
‫Vì vậy, nhận được thông tin nên được gọi và tôi muốn viết một cái gì đó như thế này.
‫Và trong trường hợp này, không.
‫Sẽ là tên và sau đó tôi muốn hiển thị âm lượng.
‫Vì vậy, tôi muốn có tên có một khối lượng.
‫Và sau đó, tất nhiên, tôi muốn biết khối lượng của tác phẩm mà chúng ta đang xem.
‫Vì vậy, hãy định hình tên và định hình khối lượng.
‫Vì vậy, ở đây điều quan trọng là chúng ta gọi phương thức âm lượng, phải không?
‫Nó không chỉ là một.
‫Tài sản.
‫Vì vậy, chúng tôi có bảng điều khiển màu đỏ dòng có một khối lượng trong trường hợp này tên có một khối lượng âm lượng.
‫Vì vậy, nó sẽ chỉ tính toán khối lượng.
‫Được rồi, vậy bây giờ chúng ta hãy kiểm tra cái này.
‫Hãy chỉ xem những gì đang xảy ra ở đây, những gì chúng tôi đã tạo ra và chúng tôi đang có nên chúng tôi có một dòng
‫trống rỗng ở đây.
‫Sau đó, nó nói, đây là một hình cầu.
‫Hình cầu có bán kính là bốn.
‫Quả cầu có thể tích là 268. 08.
‫Và đây là một khối lập phương.
‫Khối lập phương này có chiều dài là ba.
‫Khối lập phương có thể tích là 27.
‫Được rồi.
‫Vì vậy, bạn có thể thấy rằng đây là một đoạn mã rất đơn giản mà chúng tôi đã viết ở đây, nhưng nó đã giải thích hoặc hiển thị hầu hết
‫các chức năng mà chúng ta cần biết về các lớp trừu tượng.
‫Bây giờ, điều thú vị là chúng ta cũng có thể sử dụng thêm một số từ khóa mà chúng ta chưa sử dụng.
‫Và vì video này đã đủ dài nên tôi muốn nói rằng chúng ta sẽ làm điều đó trong video tiếp theo.
‫Vì vậy, hẹn gặp bạn ở đó.