Inheritance
Inheritance
1
class Employee {
String name;
int age;
String address;
void displayEmployeeDetails() {
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Address: " + address);
}
}
Manager(String name, int age, String address, String department, double salary) {
super(name, age, address);
this.department = department;
this.salary = salary;
}
void displayManagerDetails() {
displayEmployeeDetails();
System.out.println("Department: " + department);
System.out.println("Salary: " + salary);
}
}
Worker(String name, int age, String address, int daysWorked, double dailyWages) {
super(name, age, address);
this.daysWorked = daysWorked;
this.dailyWages = dailyWages;
calculateTotalSalary();
}
void calculateTotalSalary() {
totalSalary = daysWorked * dailyWages;
}
void displayWorkerDetails() {
displayEmployeeDetails();
System.out.println("Days Worked: " + daysWorked);
System.out.println("Daily Wages: " + dailyWages);
System.out.println("Total Salary: " + totalSalary);
}
}
public class Main {
public sta c void main(String[] args) {
Manager manager = new Manager("Harry", 35, "123 Main St", "HR", 900000);
Worker worker = new Worker("Aman", 28, "456 Park Ave", 20, 150);
System.out.println("Manager Details:");
manager.displayManagerDetails();
System.out.println("\nWorker Details:");
worker.displayWorkerDetails();
}
}
Q.2
class Person {
private String name;
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Person person = (Person) obj;
return name != null ? name.equals(person.name) : person.name == null;
}
}
class Employee extends Person {
private double annualSalary;
private int yearStarted;
private String na onalInsuranceNumber;
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (!super.equals(obj)) return false;
if (getClass() != obj.getClass()) return false;
Employee employee = (Employee) obj;
return Double.compare(employee.annualSalary, annualSalary) == 0 &&
yearStarted == employee.yearStarted &&
(na onalInsuranceNumber != null ? na onalInsuranceNumber.equals(employee.na onalInsuranceNumber) :
employee.na onalInsuranceNumber == null);
}
}
System.out.println("Employee 1: " + emp1.getName() + ", Annual Salary: " + emp1.getAnnualSalary() + ", Year Started: " +
emp1.getYearStarted() + ", NI Number: " + emp1.getNa onalInsuranceNumber());
System.out.println("Employee 2: " + emp2.getName() + ", Annual Salary: " + emp2.getAnnualSalary() + ", Year Started: " +
emp2.getYearStarted() + ", NI Number: " + emp2.getNa onalInsuranceNumber());
System.out.println("Employee 3: " + emp3.getName() + ", Annual Salary: " + emp3.getAnnualSalary() + ", Year Started: " +
emp3.getYearStarted() + ", NI Number: " + emp3.getNa onalInsuranceNumber());
System.out.println("Employee 1 equals Employee 2? " + emp1.equals(emp2));
System.out.println("Employee 1 equals Employee 3? " + emp1.equals(emp3));
}
}
Q.3
class Shape {
private String color;
private boolean filled;
public Shape() {
this.color = "green";
this.filled = true;
}
public Circle() {
this.radius = 1.0;
}
@Override
public String toString() {
return "A Circle with radius=" + radius + ", which is a subclass of " + super.toString();
}
}
public Rectangle() {
this.width = 1.0;
this.length = 1.0;
}
public Square() {
super(1.0, 1.0);
}
shape.setColor("blue");
shape.setFilled(false);
System.out.println(shape);