Chào các anh chị, em đang học lập trình hướng đối tượng với java và có một thắc mắc về phương thức abstract như sau:
Em có class HDTheoNgay
và class HDTheoGio
kế thừa từ class HoaDon
Trong class HDTheoNgay
có phương thức abstract tính tiền theo ngày là:
@Override
public double ThanhTien() {
if(soNgay>7)
return 7 * donGia + (soNgay-7) * donGia * 0.8;
else
return soNgay * donGia;
// TODO Auto-generated method stub
}
Trong class HDTheoGio
có phương thức abstract tính tiền theo giờ là:
@Override
public double ThanhTien() {
if(soGio<30)
return soGio * donGia;
else
return soGio * donGia * 0.8;
// TODO Auto-generated method stub
}
Trong hàm main
em tạo 4 đối tượng mới. Vậy để so sánh Thành Tiền của 4 đối tượng này thì làm thế nào ạ?
Em dùng mảng động và so sánh thoe kiểu Collections.sort
như thế này mà k được?
public void SapXep() {
Collections.sort(list, new Comparator<HoaDon>() { //list là tên mảng động, HoaDon là tên class cha
@Override
public int compare(HoaDon o1, HoaDon o2) {
// TODO Auto-generated method stub
return 0; //Em đã truyền tham số o1.ThanhTien() vào rồi nhưng mà k được
}
});
}