Java 44. Lớp và phương thức trừu tượng Abstract trong lập trình Java



    Bản quyền thuộc về TITV.vn, 
    vui lòng không đăng tải lại nội dung từ trang này.

    Video giải thích chi tiết


     Giới thiệu về lớp và phương thức trừu tượng abstract 

    Tính trừu tượng là gì:

    Tính trừu tượng là một tiến trình ẩn các chi tiết trình triển khai và chỉ hiển thị tính năng tới người dùng.

    Lớp trừu tượng không thể được dùng để tạo ra các đối tượng như những lớp bình thường khác.


    Lớp trừu tượng - abstract trong Java

    Một lớp được khai báo với từ khóa abstract thì đó là lớp trừu tượng. Nó cần được kế thừa và phương thức của nó được triển khai. Nó không thể được khởi tạo.

    Phương thức trừu tượng - abstract trong Java

    Một phương thức được khai báo là abstract và không có trình triển khai thì đó là phương thức trừu tượng. Phương thức sẽ được triển khai trong các lớp con.



     Ví dụ 


    
    
    public class ToaDo {
    	int x, y;
    
    	public ToaDo(int x, int y) {
    		this.x = x;
    		this.y = y;
    	}
    
    	public int getX() {
    		return x;
    	}
    
    	public void setX(int x) {
    		this.x = x;
    	}
    
    	public int getY() {
    		return y;
    	}
    
    	public void setY(int y) {
    		this.y = y;
    	}
    	
    	
    }
    
    
         
    
    public abstract class Hinh {
    	protected ToaDo toaDo;
    
    	public Hinh(ToaDo toaDo) {
    		this.toaDo = toaDo;
    	}
    
    	public ToaDo getToaDo() {
    		return toaDo;
    	}
    
    	public void setToaDo(ToaDo toaDo) {
    		this.toaDo = toaDo;
    	}
    	
    	public abstract double tinhDienTich();
    	
    }
    
    
         
    
    
    public class Diem extends Hinh{
    
    	public Diem(ToaDo toaDo) {
    		super(toaDo);
    	}
    
    	@Override
    	public double tinhDienTich() {
    		return 1;
    	}
    	
    }
    
    
         
    
    
    public class HinhTron extends Hinh {
    	private double r;
    	
    	public HinhTron(ToaDo toaDo, double r) {
    		super(toaDo);
    		this.r = r;
    	}
    
    	public double getR() {
    		return r;
    	}
    
    	public void setR(double r) {
    		this.r = r;
    	}
    
    	@Override
    	public double tinhDienTich() {
    		return Math.PI*this.r*this.r;
    	}
    }
    
    
    
         
    
    
    public class HinhChuNhat extends Hinh{
    	private double chieuRong, chieuCao;
    
    	public HinhChuNhat(ToaDo toaDo, double chieuRong, double chieuCao) {
    		super(toaDo);
    		this.chieuRong = chieuRong;
    		this.chieuCao = chieuCao;
    	}
    
    	@Override
    	public double tinhDienTich() {
    		return this.chieuRong*this.chieuCao;
    	}
    
    }
    
    
    
         
    
    
    
    public class Test {
    	public static void main(String[] args) {
    		ToaDo td1 = new ToaDo(5, 5);
    		ToaDo td2 = new ToaDo(7, 9);
    		ToaDo td3 = new ToaDo(12, 1);
    		
    //		Hinh h = new Hinh(td1); => lỗi biên dịch
    		
    		Hinh h1 = new Diem(td1);
    		
    		Hinh h2 = new HinhTron(td2, 10);
    		
    		Hinh h3 = new HinhChuNhat(td3, 5, 10);
    		
    		System.out.println("DT1: "+h1.tinhDienTich());
    		System.out.println("DT2: "+h2.tinhDienTich());
    		System.out.println("DT3: "+h3.tinhDienTich());
    	}
    }
    
    
    
    
         

    Bạn có thể thích những bài đăng này:

    1 nhận xét:

    1. Video hướng dẫn rất cụ thể và chi tiết, rất bổ ích. Cám ơn bạn nhiều. Chúc bạn sức khỏe và thành công!

      Trả lờiXóa