Trừu tượng là chất lượng đối phó với những ý tưởng chứ không phải là sự kiện. ví dụ như khi bạn xem xét các trường hợp e-mail, các chi tiết phức tạp như những gì xảy ra ngay sau khi bạn gửi một e-mail, các giao thức sử dụng máy chủ email của bạn được ẩn từ người sử dụng, do đó để gửi một e-mail bạn chỉ cần gõ nội dung, đề cập đến các địa chỉ của người nhận và bấm gửi. Như khôn ngoan trong hướng đối tượng lập trình trừu tượng là một quá trình quá trình ẩn các chi tiết thực hiện từ người sử dụng, chỉ có các chức năng sẽ được cung cấp cho người sử dụng lap trinh android. Nói cách khác sử dụng sẽ có các thông tin về những đối tượng không thay vì làm thế nào nó có phải nó. Trong Java Abstraction đạt được bằng cách sử dụng lớp trừu tượng và giao diện. Tóm tắt Lớp Một lớp học có chứa các từ khóa trừu tượng trong tuyên bố của mình được gọi là lớp trừu tượng. - Các lớp trừu tượng có thể hoặc không có thể chứa các phương thức trừu tượng, tức là, phương pháp này với cơ thể ra ngoài (public void get (). - Nhưng, nếu một lớp học có ít nhất một phương thức trừu tượng, sau đó các lớp phải được khai báo trừu tượng. - Nếu một lớp được khai báo trừu tượng nó không thể được khởi tạo. - Để sử dụng một lớp trừu tượng, bạn phải thừa hưởng nó từ một lớp khác, cung cấp triển khai thực hiện các phương pháp trừu tượng trong đó. - Nếu bạn thừa hưởng một lớp trừu tượng, bạn phải cung cấp triển khai đến tất cả các phương thức trừu tượng trong đó. Ví dụ Phần này cung cấp cho bạn một ví dụ về các lớp trừu tượng để tạo ra một lớp trừu tượng chỉ cần sử dụng các từ khóa trừu tượng trước từ khoá class, trong khai báo lớp. Code: /* File name : Employee.java */ public abstract class Employee { private String name; private String address; private int number; public Employee(String name, String address, int number) { System.out.println("Constructing an Employee"); this.name = name; this.address = address; this.number = number; } public double computePay() { System.out.println("Inside Employee computePay"); return 0.0; } public void mailCheck() { System.out.println("Mailing a check to " + this.name + " " + this.address); } public String toString() { return name + " " + address + " " + number; } public String getName() { return name; } public String getAddress() { return address; } public void setAddress(String newAddress) { address = newAddress; } public int getNumber() { return number; } } Bạn có thể quan sát mà chấp nhận phương thức trừu tượng class Employee là tương tự như lớp bình thường trong Java. Các lớp học hiện trừu tượng, nhưng nó vẫn có ba lĩnh vực, bảy phương pháp, và một constructor. Bây giờ bạn có thể thử để nhanh chóng lớp Employee như hình dưới đây: Code: /* File name : AbstractDemo.java */ public class AbstractDemo { public static void main(String [] args) { /* Following is not allowed and would raise error */ Employee e = new Employee("George W.", "Houston, TX", 43); System.out.println("\n Call mailCheck using Employee reference--"); e.mailCheck(); } } Khi bạn biên dịch các lớp trên, nó mang lại cho bạn những lỗi sau đây: Code: Employee.java:46: Employee is abstract; cannot be instantiated Employee e = new Employee("George W.", "Houston, TX", 43); ^ 1 error Kế thừa các Abstract Class: Chúng tôi có thể kế thừa các thuộc tính của class Employee giống như lớp bê tông như hình dưới đây: Code: /* File name : Salary.java */ public class Salary extends Employee { private double salary; //Annual salary public Salary(String name, String address, int number, double salary) { super(name, address, number); setSalary(salary); } public void mailCheck() { System.out.println("Within mailCheck of Salary class "); System.out.println("Mailing check to " + getName() + " with salary " + salary); } public double getSalary() { return salary; } public void setSalary(double newSalary) { if(newSalary >= 0.0) { salary = newSalary; } } public double computePay() { System.out.println("Computing salary pay for " + getName()); return salary/52; } } Ở đây, bạn không thể nhanh chóng lớp nhân viên, nhưng bạn có thể nhanh chóng các lớp Lương, và sử dụng hợp này bạn có thể truy cập vào tất cả ba lĩnh vực và bảy phương thức của lớp Employee như hình dưới đây. Code: /* File name : AbstractDemo.java */ public class AbstractDemo { public static void main(String [] args) { Salary s = new Salary("Mohd Mohtashim", "Ambehta, UP", 3, 3600.00); Employee e = new Salary("John Adams", "Boston, MA", 2, 2400.00); System.out.println("Call mailCheck using Salary reference --"); s.mailCheck(); System.out.println("\n Call mailCheck using Employee reference--"); e.mailCheck(); } } Xem thêm: Khóa học hoc lap trinh android co ban nâng cao tại Hà nội ! Điều này tạo ra kết quả như sau: Code: Constructing an Employee Constructing an Employee Call mailCheck using Salary reference -- Within mailCheck of Salary class ailing check to Mohd Mohtashim with salary 3600.0 Call mailCheck using Employee reference-- Within mailCheck of Salary class ailing check to John Adams with salary 2400. Phương pháp trừu tượng: Nếu bạn muốn có một lớp có chứa một phương pháp cụ thể mà bạn muốn thực hiện thực tế của phương pháp đó được xác định bởi các lớp con, bạn có thể khai báo các phương thức trong lớp cha mẹ như là trừu tượng. - Từ khóa trừu tượng được sử dụng để khai báo các phương thức như là trừu tượng. - Bạn phải đặt từ khóa trừu tượng trước tên phương thức trong phương pháp kê khai. - Một phương pháp trừu tượng chứa một chữ ký phương pháp, nhưng không có phương pháp cơ thể. - Thay vì dấu ngoặc nhọn một phương pháp trừu tượng sẽ có một tràng semoi ( ở cuối. Dưới đây đưa ra là một ví dụ về các phương pháp trừu tượng. Code: public abstract class Employee { private String name; private String address; private int number; public abstract double computePay(); //Remainder of class definition } Khai báo một phương thức là trừu tượng có hai hậu quả: - Các lớp chứa nó phải được khai báo là trừu tượng. - Bất kỳ lớp kế thừa lớp hiện tại, hoặc phải ghi đè lên các phương pháp trừu tượng hay là tuyên bố chính nó như là trừu tượng. Lưu ý: Cuối cùng, một lớp hậu duệ có để thực hiện các phương thức trừu tượng; nếu không, bạn sẽ có một hệ thống phân cấp của các lớp trừu tượng mà không thể được khởi tạo. Lớp Lương Giả sử là kế thừa lớp nhân viên, sau đó nó phải thực hiện các computePay () như hình dưới đây: Code: /* File name : Salary.java */ public class Salary extends Employee { private double salary; // Annual salary public double computePay() { System.out.println("Computing salary pay for " + getName()); return salary/52; } //Remainder of class definition } Xem thêm: Khóa hoc photoshop tai ha noi !