Giao diệnGiao diện và các lớp trừu tượng cung cấp hơn có cấu trúc cách để tách giao diện từ thực hiện. Cơ chế như vậy không phải là phổ biến trong ngôn ngữ lập trình. C + +, ví dụ, chỉ có hỗ trợ gián tiếp cho các khái niệm. Thực tế rằng từ khóa ngôn ngữ tồn tại trong Java chỉ ra rằng những ý tưởng được coi là quan trọng, đủ để cung cấp hỗ trợ trực tiếp. Trước tiên, chúng tôi sẽ xem xét lớp trừu tượng, mà là một loại bước midway giữa một lớp học thông thường và một giao diện. Mặc dù xung đầu tiên của bạn sẽ là để tạo ra một giao diện, lớp trừu tượng là một công cụ quan trọng và cần thiết để xây dựng các lớp học có một số phương pháp unimplemented. Bạn không thể luôn luôn sử dụng một giao diện tinh khiết.Tóm tắt lớp học và phương pháp Trong tất cả các ví dụ "công cụ" trong chương trước, những phương pháp trong lớp cơ sở công cụ đã là luôn luôn "giả" phương pháp. Nếu những phương pháp này được gọi là bao giờ hết, bạn đã thực hiện một cái gì đó sai. Đó là bởi vì mục đích của nhạc cụ là để tạo ra một giao diện chung cho tất cả các lớp học bắt nguồn từ nó. Trong những ví dụ, lý do duy nhất để thiết lập giao diện phổ biến này là do đó nó có thể được thể hiện một cách khác nhau cho mỗi phiên bản khác nhau. Nó thiết lập một hình thức cơ bản, do đó bạn có thể nói những gì là phổ biến cho tất cả các lớp học có nguồn gốc. Một cách khác để nói điều này là để gọi cụ một lớp cơ sở trừu tượng, hoặc chỉ đơn giản là một lớp trừu tượng. Nếu bạn có một lớp trừu tượng như dụng cụ, các đối tượng của lớp cụ thể đó hầu như luôn luôn có không có ý nghĩa. Bạn tạo một lớp trừu tượng khi bạn muốn để thao tác một tập hợp các lớp học thông qua giao diện phổ biến của nó. Vì vậy, công cụ là có nghĩa là để thể hiện chỉ giao diện, và không phải là một thực hiện cụ thể, do đó, việc tạo ra một đối tượng cụ làm cho không có ý nghĩa, và có thể bạn sẽ muốn ngăn người dùng làm việc đó. Điều này có thể được thực hiện bằng cách làm tất cả phương pháp trong công cụ tạo ra lỗi, nhưng đó là sự chậm trễ thông tin cho đến khi thời gian chạy và yêu cầu kiểm tra đầy đủ đáng tin cậy trên một phần của người dùng. Nó là thường là tốt hơn để nắm bắt vấn đề tại thời gian biên dịch. Java cung cấp một cơ chế để làm điều này được gọi là phương pháp trừu tượng. 1 đây là một phương pháp là không đầy đủ; Huyện này có chỉ là một tuyên bố và không có cơ thể phương pháp. Đây là cú pháp cho một tuyên bố trừu tượng phương pháp. trừu tượng vô hiệu f (); Một lớp có chứa trừu tượng phương pháp được gọi là một lớp trừu tượng. Nếu một lớp có chứa một hoặc nhiều phương pháp trừu tượng, các lớp học chính nó phải có đủ điều kiện là tóm tắt. (Nếu không, trình biên dịch cung cấp cho bạn một thông báo lỗi.) Nếu một lớp trừu tượng là không đầy đủ, trình biên dịch phải làm gì khi ai đó cố gắng để làm cho một đối tượng của lớp đó? Nó một cách an toàn không thể tạo ra một đối tượng của một lớp trừu tượng, do đó, bạn nhận được 1 cho các lập trình C++, ist này ông tương tự c++ của tinh khiết ảo chức năng. một thông báo lỗi từ trình biên dịch. Bằng cách này, trình biên dịch đảm bảo độ tinh khiết của lớp trừu tượng, và bạn không cần phải lo lắng về misusing nó. Nếu bạn thừa kế từ một lớp trừu tượng và bạn muốn làm cho các đối tượng của kiểu mới, bạn phải cung cấp phương pháp định nghĩa cho tất cả những phương pháp trừu tượng trong lớp cơ sở. Nếu bạn không (và bạn có thể chọn không để), sau đó các lớp học có nguồn gốc là cũng trừu tượng, và trình biên dịch sẽ buộc bạn phải vượt qua vòng loại lớp đó với từ khóa trừu tượng. Nó có thể làm cho một lớp trừu tượng không bao gồm bất kỳ phương pháp trừu tượng. Điều này là hữu ích khi bạn đã có một lớp học trong đó nó không có ý nghĩa để có bất kỳ phương pháp trừu tượng, và được bạn muốn ngăn chặn bất kỳ trường hợp của lớp đó. Các lớp học nhạc cụ từ các chương trước một cách dễ dàng có thể được biến thành một lớp trừu tượng. Chỉ một số trong những phương pháp sẽ được trừu tượng, kể từ khi làm một lớp trừu tượng không buộc bạn phải làm cho tất cả các phương pháp trừu tượng. Dưới đây là những gì nó trông giống như:
đang được dịch, vui lòng đợi..
