// Employee.java
class Employee {
private String empID;
private String empName;
private double tax;
public void setID(String id) {
this.empID = id;
}
public void setName(String name) {
this.empName = name;
}
public void calTax(double salary, double bonus) {
this.tax = (salary + bonus) * 0.09;
}
public void showDetails() {
System.out
.println
("Employee ID: " + empID
); System.out
.println
("Employee Name: " + empName
); System.out
.println
("Tax: " + tax
); }
}
// Student.java
class Student {
private String name;
private int score;
public void setName(String name) {
this.name = name;
}
public void setScore(int score) {
this.score = score;
}
public String getName() {
return name;
}
public int getScore() {
return score;
}
}
// GradStudent.java (Inheritance from Student)
class GradStudent extends Student {
private String advisor;
public void setAdvisor(String advisor) {
this.advisor = advisor;
}
public void showDetail() {
System.out
.println
("Name: " + getName
()); System.out
.println
("Score: " + getScore
()); System.out
.println
("Advisor: " + advisor
); }
}
// Main class to test
public class Test {
public static void main(String[] args) {
// Test Employee
Employee emp = new Employee();
emp.setID("E001");
emp.setName("Alice");
emp.calTax(50000, 10000);
emp.showDetails();
System.out
.println
("======================");
// Test Student
Student stu = new Student();
stu.setName("Bob");
stu.setScore(85);
System.out
.println
("Student Name: " + stu
.getName
()); System.out
.println
("Student Score: " + stu
.getScore
());
System.out
.println
("======================");
// Test GradStudent
GradStudent grad = new GradStudent();
grad.setName("Charlie");
grad.setScore(90);
grad.setAdvisor("Dr. Smith");
grad.showDetail();
}
}
Ly8gRW1wbG95ZWUuamF2YQpjbGFzcyBFbXBsb3llZSB7CiAgICBwcml2YXRlIFN0cmluZyBlbXBJRDsKICAgIHByaXZhdGUgU3RyaW5nIGVtcE5hbWU7CiAgICBwcml2YXRlIGRvdWJsZSB0YXg7CgogICAgcHVibGljIHZvaWQgc2V0SUQoU3RyaW5nIGlkKSB7CiAgICAgICAgdGhpcy5lbXBJRCA9IGlkOwogICAgfQoKICAgIHB1YmxpYyB2b2lkIHNldE5hbWUoU3RyaW5nIG5hbWUpIHsKICAgICAgICB0aGlzLmVtcE5hbWUgPSBuYW1lOwogICAgfQoKICAgIHB1YmxpYyB2b2lkIGNhbFRheChkb3VibGUgc2FsYXJ5LCBkb3VibGUgYm9udXMpIHsKICAgICAgICB0aGlzLnRheCA9IChzYWxhcnkgKyBib251cykgKiAwLjA5OwogICAgfQoKICAgIHB1YmxpYyB2b2lkIHNob3dEZXRhaWxzKCkgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRW1wbG95ZWUgSUQ6ICIgKyBlbXBJRCk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbXBsb3llZSBOYW1lOiAiICsgZW1wTmFtZSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUYXg6ICIgKyB0YXgpOwogICAgfQp9CgovLyBTdHVkZW50LmphdmEKY2xhc3MgU3R1ZGVudCB7CiAgICBwcml2YXRlIFN0cmluZyBuYW1lOwogICAgcHJpdmF0ZSBpbnQgc2NvcmU7CgogICAgcHVibGljIHZvaWQgc2V0TmFtZShTdHJpbmcgbmFtZSkgewogICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICB9CgogICAgcHVibGljIHZvaWQgc2V0U2NvcmUoaW50IHNjb3JlKSB7CiAgICAgICAgdGhpcy5zY29yZSA9IHNjb3JlOwogICAgfQoKICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKICAgICAgICByZXR1cm4gbmFtZTsKICAgIH0KCiAgICBwdWJsaWMgaW50IGdldFNjb3JlKCkgewogICAgICAgIHJldHVybiBzY29yZTsKICAgIH0KfQoKLy8gR3JhZFN0dWRlbnQuamF2YSAoSW5oZXJpdGFuY2UgZnJvbSBTdHVkZW50KQpjbGFzcyBHcmFkU3R1ZGVudCBleHRlbmRzIFN0dWRlbnQgewogICAgcHJpdmF0ZSBTdHJpbmcgYWR2aXNvcjsKCiAgICBwdWJsaWMgdm9pZCBzZXRBZHZpc29yKFN0cmluZyBhZHZpc29yKSB7CiAgICAgICAgdGhpcy5hZHZpc29yID0gYWR2aXNvcjsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzaG93RGV0YWlsKCkgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTmFtZTogIiArIGdldE5hbWUoKSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTY29yZTogIiArIGdldFNjb3JlKCkpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQWR2aXNvcjogIiArIGFkdmlzb3IpOwogICAgfQp9CgovLyBNYWluIGNsYXNzIHRvIHRlc3QKcHVibGljIGNsYXNzIFRlc3QgewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIC8vIFRlc3QgRW1wbG95ZWUKICAgICAgICBFbXBsb3llZSBlbXAgPSBuZXcgRW1wbG95ZWUoKTsKICAgICAgICBlbXAuc2V0SUQoIkUwMDEiKTsKICAgICAgICBlbXAuc2V0TmFtZSgiQWxpY2UiKTsKICAgICAgICBlbXAuY2FsVGF4KDUwMDAwLCAxMDAwMCk7CiAgICAgICAgZW1wLnNob3dEZXRhaWxzKCk7CiAgICAgICAgCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI9PT09PT09PT09PT09PT09PT09PT09Iik7CgogICAgICAgIC8vIFRlc3QgU3R1ZGVudAogICAgICAgIFN0dWRlbnQgc3R1ID0gbmV3IFN0dWRlbnQoKTsKICAgICAgICBzdHUuc2V0TmFtZSgiQm9iIik7CiAgICAgICAgc3R1LnNldFNjb3JlKDg1KTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0dWRlbnQgTmFtZTogIiArIHN0dS5nZXROYW1lKCkpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3R1ZGVudCBTY29yZTogIiArIHN0dS5nZXRTY29yZSgpKTsKICAgICAgICAKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIj09PT09PT09PT09PT09PT09PT09PT0iKTsKCiAgICAgICAgLy8gVGVzdCBHcmFkU3R1ZGVudAogICAgICAgIEdyYWRTdHVkZW50IGdyYWQgPSBuZXcgR3JhZFN0dWRlbnQoKTsKICAgICAgICBncmFkLnNldE5hbWUoIkNoYXJsaWUiKTsKICAgICAgICBncmFkLnNldFNjb3JlKDkwKTsKICAgICAgICBncmFkLnNldEFkdmlzb3IoIkRyLiBTbWl0aCIpOwogICAgICAgIGdyYWQuc2hvd0RldGFpbCgpOwogICAgfQp9Cg==