[ Java ] Lớp trừu tượng và phương thức trừu tượng (abstract) trong Java - Ví dụ 1: Tính điểm cho sinh viên [abstract class-method]

Lớp trừu tượng và phương thức trừu tượng (abstract) trong Java
Xây dựng Project theo mô hình sau:



Yêu cầu:
 - Khởi tạo mỗi lớp 1 đối tượng
 - In kết quả 

[Cài đặt với NetBean]
- Xây dựng Project như hình sau:



- Code Java:

/*abstract class SV*/
package abstract1;

public abstract class SV {
    // thuoc tinh
    int ns;// nam sinh
    String ht;// ho ten
    String dc;// dia chi
    // phuong thuc khoi tao
    public SV(String ht, int ns, String dc){
     this.ht=ht; this.dc=dc; this.ns=ns;   
    }    
    // Phuong thuc TinhDiem() - abstract
    abstract float TinhDiem();
    // phuong thuc XepLoai()-abstract
    abstract String XepLoai();
    // phuong thuc InKQ()
    void InKQ(){
        System.err.print("\n - Ho ten sinh vien: "+ht);
        System.err.print("\n - Dia chi: "+dc);
        System.err.print("\n - Nam sinh: "+ns);
        System.err.print("\n - Diem tong ket: "+TinhDiem());
        System.err.println("\n - Xep loai: "+XepLoai());
        
    }
}


/*class SVCD*/

public class SVCD extends SV{
    // thuoc tinh
    float dLT,dCSDL,dMang;
    // khoi tao
    public SVCD(String ht,int ns, String dc, float dLT,float dCSDL, float dMang){
        super(ht,ns,dc);
        this.dCSDL=dCSDL;
        this.dLT=dLT;
        this.dMang=dMang;
    }
    // Phuong thuc TinhDiem()
    float TinhDiem(){
        return (dCSDL+dLT+dMang)/3;
    }
    String XepLoai(){
        float d=TinhDiem();
        String xl="";
        if (d<5)
            xl="Khong dat";
        else if (d<6)
            xl="TB";
        else if(d<7)
            xl="TBK";
        else if(d<8)
            xl="Kha";
        else if(d<9)
            xl="Gioi";
        else xl="Xuat sac";
        return xl;
    }
}

/*class SVDH*/
package abstract1;
public class SVDH extends SVCD {
 // thuoc tinh
    float dCNPM;
    // khoi tao
    public SVDH(String ht,int ns, String dc, float dLT,float dCSDL, float dMang,float dCNPM){
        super(ht,ns,dc,dLT,dCSDL,dMang);        
        this.dCNPM=dCNPM;
    }
    // Phuong thuc TinhDiem()
    float TinhDiem(){
        return (dCSDL+dLT+dMang+dCNPM)/4;
    }
    String XepLoai(){
        float d=TinhDiem();
        String xl="";
        if (d<5)
            xl="Khong dat";
        else if (d<6)
            xl="TB";
        else if(d<7)
            xl="TBK";
        else if(d<8)
            xl="Kha";
        else if(d<9)
            xl="Gioi";
        else xl="Xuat sac";
        return xl;
    }
}

/*class Abstract1 (class chinh)*/
package abstract1;
public class Abstract1 {
    public static void main(String[] args) {
        // khai bao doi tuong SVCD
        SVCD t=new SVCD("Nguyen Van A",1990,"Ha Noi",7,8,9);
        t.InKQ();
        // khai bo doi tuong SVDH
        SVDH t1=new SVDH("Nguyen Van B",1989,"Ha Tay",6,7,8,9);
        t1.InKQ();
    }
}

Một số tài liệu và khoá học bổ ích dành cho bạn: 

# Tài liệu: Lập trình hướng đối tượng JAVA core dành cho người mới bắt đầu học lập trình [Click để xem]

# Khoá học online: Lập trình Java trong 4 tuần [Click để xem]