// 抽象クラス Employee
abstract class Employee {
// 抽象メソッド calculateSalary を宣言
public abstract double calculateSalary();
}
// 具象クラス Manager
class Manager extends Employee {
private double baseSalary;
private double bonus;
// コンストラクタ
public Manager(double baseSalary, double bonus) {
this.baseSalary = baseSalary;
this.bonus = bonus;
}
// calculateSalary メソッドã®å®Ÿè£…
@Override
public double calculateSalary() {
return baseSalary + bonus;
}
}
// 具象クラス Developer
class Developer extends Employee {
private double hourlyRate;
private int hoursWorked;
// コンストラクタ
public Developer(double hourlyRate, int hoursWorked) {
this.hourlyRate = hourlyRate;
this.hoursWorked = hoursWorked;
}
// calculateSalary メソッドã®å®Ÿè£…
@Override
public double calculateSalary() {
return hourlyRate * hoursWorked;
}
}
// メインクラス
public class Main {
public static void main(String[] args) {
// Manager クラスã®åˆ©ç”¨ä¾‹
Manager manager = new Manager(50000, 10000);
System.out.println("Manager's Salary: $" + manager.calculateSalary());
// Developer クラスã®åˆ©ç”¨ä¾‹
Developer developer = new Developer(25, 160);
System.out.println("Developer's Salary: $" + developer.calculateSalary());
}
}
ã“ã®ä¾‹ã§ã¯ã€Employee ã‚¯ãƒ©ã‚¹ãŒæŠ½è±¡ãƒ¡ã‚½ãƒƒãƒ‰ calculateSalary() を宣言ã—ã¦ã„ã¾ã™ã€‚ãれを継承ã™ã‚‹å…·è±¡ã‚¯ãƒ©ã‚¹ Manager 㨠Developer ãŒã€ãれãžã‚Œã®è·ç¨®ã«å¿œã˜ãŸçµ¦ä¸Žè¨ˆç®—を行ã†ãƒ¡ã‚½ãƒƒãƒ‰ã‚’実装ã—ã¦ã„ã¾ã™ã€‚Main クラス㧠Manager クラス㨠Developer クラスをインスタンス化ã—ã€calculateSalary() メソッドを呼ã³å‡ºã—ã¦ã€å„従æ¥å“¡ã®çµ¦ä¸ŽãŒè¡¨ç¤ºã•れる様åãŒç¤ºã•れã¦ã„ã¾ã™ã€‚
å‡ºåŠ›çµæžœï¼š
Manager's Salary: $60000.0
Developer's Salary: $4000.0
「016 抽象クラスã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント