Thắc mắc về phương thức abstract trong java?
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
}
});
}
ai giúp em với
t cũng không chắc nhưng thử thêm dòng
public int compare(HoaDon o1, HoaDon o2) {
o1.thanhtien()< o2.thanhtien return 1;
o1.thanhtien()>o2.thanhtien return -1;
return 0;
}
Bài của bạn dùng Visitor Design Pattern, tách hoá đơn và công thức tính tiền.
k được bạn ơi! :(((((((
thử vứt code t xem đc ko
code cả bài hay code đoạn nào?
bạn gửi code cả bài t xem qua xem có giúp đc ko ?
làm sao để gửi đây bạn
up lên driver rồi gửi link qua tn cho t cũng đc
lúc nãy là do bạn thiếu
if
lúc nãy viết vội mà :))