Tính trừu tượng trong Java - 155 bài học Java miễn phí hay nhất PDF

6 75 0
Tính trừu tượng trong Java - 155 bài học Java miễn phí hay nhất PDF

Đang tải... (xem toàn văn)

Thông tin tài liệu

http://vietjack.com/java/index.jsp Copyright © vietjack.com Trừu tượng hóa Java Trừu tượng hóa (Abstraction) Java hướng đến khả tạo đối tượng trừu tượng lập trình hướng đối tượng Một lớp trừu tượng lớp mà không khởi tạo Tất chức khác lớp tồn tại, tất trường, phương thức, hàm khởi tạo truy cập với cách giống Bạn tạo đối tượng với lớp trừu tượng hóa Nếu lớp lớp trừu tượng khơng thuyết minh, lớp khơng sử dụng trừ lớp Lớp Abstract Java Sử dụng từ khóa abstract để khai báo lớp abstract Từ khóa xuất trước từ khóa class khai báo lớp /* 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 http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com + " " + 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 ý khơng có khác lớp Employee Lớp abstract, có trường, phương thức constructor Bây giờ, thử làm sau: /* File name : AbstractDemo.java */ public class AbstractDemo { public static void main(String [] args) { http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com /* 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 lớp trên, bạn nhận lỗi: Employee.java:46: Employee is abstract; cannot be instantiated Employee e = new Employee("George W.", "Houston, TX", 43); ^ error Kế thừa lớp Abstract Java Chúng ta kế thừa lớp Employee theo cách thơng thường sau: /* 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); } http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com 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, thuyết minh Employee mới, thuyết minh đối tượng Salary mới, đối tượng Salary kế thừa trường, phương thức từ Employee /* 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(); http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com } } Nó cho kết sau: Constructing an Employee Constructing an Employee Call mailCheck using Salary reference Within mailCheck of Salary class Mailing check to Mohd Mohtashim with salary 3600.0 Call mailCheck using Employee reference-Within mailCheck of Salary class Mailing check to John Adams with salary 2400 Phương thức lớp Abstract Java Nếu bạn muốn lớp chứa phương thức cụ thể bạn muốn triển khai thực phương thức để định lớp con, bạn khai báo phương thức lớp cha dạng abstract Từ khóa abstract sử dụng để khai báo phương thức dạng abstract Một phương thức gồm ký số, khơng có thân phương thức Phương thức abstract khơng có định nghĩa, ký số theo sau dấu chấm phảy, khơng có dấu ngoặc móc ôm theo sau: public abstract class Employee { private String name; private String address; private int number; public abstract double computePay(); //Remainder of class definition http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com } Khai báo phương thức dạng abstract tạo hai kết sau:  Lớp phải khai báo abstract Nếu lớp chứa phương thức abstract, lớp phải abstract  Bất kỳ lớp phải override phương thức abstract khai bao abstract Một lớp mà kế thừa phương thức abstract phải ghi đè Nếu khơng, phải abstract lớp chúng phải override Cuối cùng, lớp phải triển khai phương thức abstract, không bạn có cấu trúc phân cấp lớp abstract mà thuyết minh Nếu Salary kế thừa lớp Employee, cần triển khai phương thức computePay() sau: /* 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 } http://vietjack.com/ Trang chia sẻ học online miễn phí Page ... name : AbstractDemo .java */ public class AbstractDemo { public static void main(String [] args) { http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com /java/ index.jsp Copyright... getName() + " with salary " + salary); } http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com /java/ index.jsp Copyright © vietjack.com public double getSalary() { return... Employee reference "); e.mailCheck(); http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com /java/ index.jsp Copyright © vietjack.com } } Nó cho kết sau: Constructing

Ngày đăng: 03/12/2017, 01:00

Từ khóa liên quan

Mục lục

  • Trừu tượng hóa trong Java

    • Lớp Abstract trong Java

    • Kế thừa lớp Abstract trong Java

    • Phương thức của lớp Abstract trong Java

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan