Bài tập 2: Inheritance and InterfacesTạo ứng dụng để tính toán thu nhập cho các cầu thủ bong chày.. Ứng dụng gồm các lớp sau: Player: • Abstract class • Thuộc tính: Tên cầu thủ • Constr
Trang 1Bài tập 2: Inheritance and Interfaces
Tạo ứng dụng để tính toán thu nhập cho các cầu thủ bong chày Ứng dụng gồm các lớp sau:
Player:
• Abstract class
• Thuộc tính: Tên cầu thủ
• Constructor: gán giá trị cho Tên cầu thủ
• Abstract Method: displayDetail: Hiển thị tên cầu thủ
Tax
• Interface
• Chứa Constant TAX_PERCENT
• Abstract Method: calculateTax() tính thuế thu nhập của cầu thủ
PlayerIncome:
• Thừa kế lớp Player và thực thi (implement) lớp Tax
• Thuộc tính: Thu nhập của cầu thủ (income)
• Constructor: có hai tham số chứa tên và thu nhập của cầu thủ
o Gán giá trị cho thuộc tính thu nhập
o Gọi Constructor của lớp Player để gán giá trị cho thuộc tinh tên cầu thủ
• Viết code(implement) cho phương thức calculateTax { return TAX_PERCENT* income; }
• Viết code(implement) cho phương thức displayDetail: hiện thị tên ,thu nhập và thuế thu
nhập của cầu thủ xuất (name + “, income=” + income + “tax=” + calculateTax() );
GradeBonus:
• Interface
• Constant: GRADE_BONUS_PERCENT: tỉ lệ thưởng cho cầu thủ (giá trị=0.3)
• Abstract method: calculateGradeBonus: tính tiền thưởng cho cầu thủ
TournamentIncome:
• Thừa kế lớp Player và thực thi Interface GradeBonus
• Thuộc tính: grade (hạng cầu thủ), rate(mức đáng giá của cầu thủ )
• Constructor: có ba tham số: chứa tên, hạng và đánh giá của cầu thủ:
o Gán giá trị cho thuộc tính hạng, đánh giá
o Gọi Constructor của lớp Player để gán giá trị cho thuộc tinh tên cầu thủ
• Viết code(implement) cho phương thức
o calculateGradeBonus:
if (grade>=2 && rate>=2) return GREAT_BONUS_PERCENT * grade;
Trang 2return 0; // code tự ấn định
o displayDetail:
xuất (name + “,Bonus=” + calculateGreatBonus());
PlayerTest:
{ main()
{ PlayerIncom p1= new PlayerIncome( “Albert”, 10000);
TournamentIncome p2= new TournamentIncome (“Alberto”,3,2); p1.displayDetail();
p2.displayDetail();
}
}