Java 45. Bài tập về kế thừa và abstract



    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


     Bài tập 



     Viết chương trình Java đầu tiên 

    
    
    public class HangSanXuat {
    	private String tenHangSanXuat, tenQuocGia;
    
    	public HangSanXuat(String tenHangSanXuat, String tenQuocGia) {
    		this.tenHangSanXuat = tenHangSanXuat;
    		this.tenQuocGia = tenQuocGia;
    	}
    
    	public String getTenHangSanXuat() {
    		return tenHangSanXuat;
    	}
    
    	public void setTenHangSanXuat(String tenHangSanXuat) {
    		this.tenHangSanXuat = tenHangSanXuat;
    	}
    
    	public String getTenQuocGia() {
    		return tenQuocGia;
    	}
    
    	public void setTenQuocGia(String tenQuocGia) {
    		this.tenQuocGia = tenQuocGia;
    	}
    	
    	
    }
    
     
    
    
    public abstract class PhuongTienDiChuyen {
    	protected String tenLoaiPhuongTien;
    	protected HangSanXuat hangSanXuat;
    	
    	public PhuongTienDiChuyen(String tenLoaiPhuongTien, HangSanXuat hangSanXuat) {
    		this.tenLoaiPhuongTien = tenLoaiPhuongTien;
    		this.hangSanXuat = hangSanXuat;
    	}
    
    	public String getTenLoaiPhuongTien() {
    		return tenLoaiPhuongTien;
    	}
    
    	public void setTenLoaiPhuongTien(String tenLoaiPhuongTien) {
    		this.tenLoaiPhuongTien = tenLoaiPhuongTien;
    	}
    	
    	public String layTenHangSanXuat() {
    		return this.hangSanXuat.getTenHangSanXuat();
    	}
    	
    	public void batDau() {
    		System.out.println("Bắt đầu ....");
    	}
    
    	public void tangToc() {
    		System.out.println("Tăng tốc ...");
    	}
    	
    	public void dungLai() {
    		System.out.println("Dừng lại ...");
    	}
    	
    	public abstract double layVanToc();
    }
    
     
    
    
    public class MayBay extends PhuongTienDiChuyen{
    	private String loaiNhienLieu;
    
    	public MayBay(HangSanXuat hangSanXuat, String loaiNhienLieu) {
    		super("Máy Bay", hangSanXuat);
    		this.loaiNhienLieu = loaiNhienLieu;
    	}
    
    	public String getLoaiNhienLieu() {
    		return loaiNhienLieu;
    	}
    
    	public void setLoaiNhienLieu(String loaiNhienLieu) {
    		this.loaiNhienLieu = loaiNhienLieu;
    	}
    
    	@Override
    	public double layVanToc() {
    		return 500;
    	}
    	
    	public void catCanh() {
    		System.out.println("Cất cánh");
    	}
    	
    	public void haCanh() {
    		System.out.println("Hạ cánh");
    	}
    }
    
     
    
    
    public class XeDap extends PhuongTienDiChuyen{
    
    	public XeDap(HangSanXuat hangSanXuat) {
    		super("Xe đạp", hangSanXuat);
    	}
    
    	@Override
    	public double layVanToc() {
    		return 20;
    	}
    }
    
     
    
    
    public class XeOTo extends PhuongTienDiChuyen{
    	private String loaiNhienLieu;
    
    	public XeOTo(HangSanXuat hangSanXuat , String loaiNhienLieu) {
    		super("Xe Ô tô", hangSanXuat);
    		this.loaiNhienLieu = loaiNhienLieu;
    	}
    
    	public String getLoaiNhienLieu() {
    		return loaiNhienLieu;
    	}
    
    	public void setLoaiNhienLieu(String loaiNhienLieu) {
    		this.loaiNhienLieu = loaiNhienLieu;
    	}
    
    	@Override
    	public double layVanToc() {
    		return 150;
    	}
    	
    	
    }
    
     
    
    
    public class Test {
    	public static void main(String[] args) {
    		HangSanXuat h1 = new HangSanXuat("Hãng 1", "Việt Nam");
    		HangSanXuat h2 = new HangSanXuat("Hãng 2", "USA");
    		HangSanXuat h3 = new HangSanXuat("Hãng 3", "Nhật Bản");
    		
    		PhuongTienDiChuyen p1 = new XeOTo(h1, "Trường Hải");
    		MayBay p2 = new MayBay(h2, "Xăng");
    		PhuongTienDiChuyen p3 = new XeDap(h3);
    		
    		System.out.println("Lấy hảng sản xuất");
    		System.out.println("p1: "+ p1.layTenHangSanXuat());
    		
    		System.out.println("Bắt đầu: ");
    		p2.batDau();
    		
    		System.out.println("Lấy vận tốc: ");
    		System.out.println("p1: "+ p1.layVanToc());
    		System.out.println("p2: "+ p2.layVanToc());
    		System.out.println("p3: "+ p3.layVanToc());
    		
    		
    		System.out.println("Cất cánh: ");
    		p2.catCanh();
    	}
    }
    
     

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

    2 nhận xét:

    1. Trong cửa sổ tạo class mới, mình có chọn vào ô astract thì câu lệnh sẽ có astract cho mình luôn (phút 8:29)

      Trả lờiXóa