0% found this document useful (0 votes)
39 views

Example: Now Suppose We Extend Employee Class As Follows

The document describes a Salary class that extends the Employee class. The Salary class adds a salary field and overrides the mailCheck method to print the salary when mailing a check. A main method creates a Salary object referenced as both a Salary and Employee, and calls mailCheck on each to demonstrate the polymorphic behavior.

Uploaded by

Pallab Datta
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views

Example: Now Suppose We Extend Employee Class As Follows

The document describes a Salary class that extends the Employee class. The Salary class adds a salary field and overrides the mailCheck method to print the salary when mailing a check. A main method creates a Salary object referenced as both a Salary and Employee, and calls mailCheck on each to demonstrate the polymorphic behavior.

Uploaded by

Pallab Datta
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

Example

/* File name : Employee.java */


public class Employee {
private String name;
private String address;
private int number;

public Employee(String name, String address, int number) {


System.out.println("Constructing an Employee");
this.name = name;
this.address = address;
this.number = number;
}

public void mailCheck() {


System.out.println("Mailing a check to " + this.name + " " +
this.address);
}

public String toString() {


return name + " " + address + " " + number;
}

public String getName() {


return name;
}

public String getAddress() {


return address;
}

public void setAddress(String newAddress) {


address = newAddress;
}

public int getNumber() {


return number;
}
}

Now suppose we extend Employee class as follows −

/* File name : Salary.java */


public class Salary extends Employee {
private double salary; // Annual salary

public Salary(String name, String address, int number, double salary) {


super(name, address, number);
setSalary(salary);
}

public void mailCheck() {


System.out.println("Within mailCheck of Salary class ");
System.out.println("Mailing check to " + getName()
+ " with salary " + salary);
}

public double getSalary() {


return salary;
}

public void setSalary(double newSalary) {


if(newSalary >= 0.0) {
salary = newSalary;
}
}

public double computePay() {


System.out.println("Computing salary pay for " + getName());
return salary/52;
}
}

Now, you study the following program carefully and try to determine its output −

/* File name : VirtualDemo.java */


public class VirtualDemo {

public static void main(String [] args) {


Salary s = new Salary("Mohd Mohtashim", "Ambehta, UP", 3, 3600.00);
Employee e = new Salary("John Adams", "Boston, MA", 2, 2400.00);
System.out.println("Call mailCheck using Salary reference --");
s.mailCheck();
System.out.println("\n Call mailCheck using Employee reference--");
e.mailCheck();
}
}

You might also like