Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
22 views

Abstraction Program Java

The document describes an abstract Employee class with fields to store an employee's name, address, and number. It contains methods like computePay and mailCheck. The Salary class inherits from Employee and adds a salary field. It overrides mailCheck and computePay to handle salary specific logic. The main method demonstrates creating Salary objects and calling methods on both Salary and Employee references.
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

Abstraction Program Java

The document describes an abstract Employee class with fields to store an employee's name, address, and number. It contains methods like computePay and mailCheck. The Salary class inherits from Employee and adds a salary field. It overrides mailCheck and computePay to handle salary specific logic. The main method demonstrates creating Salary objects and calling methods on both Salary and Employee references.
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

/* File name : Employee.

java */
public abstract 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 double computePay() {


System.out.println("Inside Employee computePay");
return 0.0;
}

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;
}
}

Inheriting the Abstract Class


We can inherit the properties of Employee class just like concrete class in the
following way −

Example
/* 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;
}
}

Here, you cannot instantiate the Employee class, but you can instantiate the Salary
Class, and using this instance you can access all the three fields and seven
methods of Employee class as shown below.

/* File name : AbstractDemo.java */


public class AbstractDemo {

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