0% found this document useful (0 votes)
37 views6 pages

Inheritance Lab Pgm

The document contains multiple Java programs demonstrating object-oriented programming concepts such as inheritance, method overriding, and the Open/Closed Principle. It includes a Shape class with a Rectangle subclass for area calculation, an Employee class with a subclass HRManager, and a demonstration of hierarchical inheritance with Vehicle, Car, and Motorcycle classes. Additionally, it illustrates volume calculation for Cuboid and Sphere classes while adhering to the Open/Closed Principle.

Uploaded by

vaarsh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views6 pages

Inheritance Lab Pgm

The document contains multiple Java programs demonstrating object-oriented programming concepts such as inheritance, method overriding, and the Open/Closed Principle. It includes a Shape class with a Rectangle subclass for area calculation, an Employee class with a subclass HRManager, and a demonstration of hierarchical inheritance with Vehicle, Car, and Motorcycle classes. Additionally, it illustrates volume calculation for Cuboid and Sphere classes while adhering to the Open/Closed Principle.

Uploaded by

vaarsh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

1. Write a Java program to create a class called Shape with a method called getArea().

Create a subclass called


Rectangle that overrides the getArea() method to calculate the area of a rectangle.

public class Shape


{
public double getArea()
{
// Return 0.0 as the default area
return 0.0;
}
}

// Define the child class Rectangle that extends Shape


public class Rectangle extends Shape
{
private double length;
private double width;

// Define the constructor that takes length and width as parameters


public Rectangle(double length, double width)
{
this.length = length;
this.width = width;
}

// Use the @Override annotation to indicate that this method overrides a method in the superclass
@Override
// Define the getArea method that returns a double
public double getArea()
{

return length * width;


}
}

public class Main


{
public static void main(String[] args) {
// Create an instance of Rectangle with length 3.0 and width 10.0
Rectangle rectangle = new Rectangle(3.0, 10.0);
// Call the getArea method on the rectangle instance and store the result in the area variable
double area = rectangle.getArea();
// Print the area of the rectangle to the console
System.out.println("The area of the rectangle is: " + area);
}
}

Output:

The area of the rectangle is: 30.0

2. Write a Java program to create a class called Employee with methods called work() and getSalary()

1
public class Employee
{
private int salary;
public Employee(int salary)
{
this.salary = salary;
}

// Method to simulate the employee working


public void work()
{
// Print a message indicating the employee is working
System.out.println("working as an employee!");
}

// Getter method to retrieve the salary of the employee


public int getSalary()
{
return salary;
}
}

public class HRManager extends Employee


{
public HRManager(int salary)
{
// Call the parent class constructor with the salary
super(salary);
}

// Overridden method to simulate the HRManager working


public void work()
{
// Print a message indicating the HRManager is managing employees
System.out.println("\nManaging employees");
}
public void addEmployee()
{
System.out.println("\nAdding new employee!");
}
}

public class Main


{
public static void main(String[] args)
{
// Create an Employee object with a salary of 40000
Employee emp = new Employee(40000);

// Create an HRManager object with a salary of 70000


HRManager mgr = new HRManager(70000);

// Call the work method on the Employee object


emp.work();
2
// Print the salary of the Employee object
System.out.println("Employee salary: " + emp.getSalary());

// Call the work method on the HRManager object


mgr.work();

// Print the salary of the HRManager object


System.out.println("Manager salary: " + mgr.getSalary());

// Call the addEmployee method on the HRManager object


mgr.addEmployee();
}
}

Output:

working as an employee!
Employee salary: 40000

Managing employees
Manager salary: 70000

Adding new employee!

3. Java program to Implement hierarchical inheritance

public class HierarchicalInheritance


{
public static void main(String[] args)
{
Car car = new Car(); // Create objects of child classes
Motorcycle motorcycle = new Motorcycle();

car.display(); // Calling methods of parent class


motorcycle.display();

car.displayCar(); // Calling methods of child classes


motorcycle.displayMotorcycle();
}
}
class Vehicle // Parent class
{
void display()
{
System.out.println("This is a Vehicle");
}
}
class Car extends Vehicle // Child class 1
{
void displayCar()
{
System.out.println("This is a Car");
}
3
}
class Motorcycle extends Vehicle // Child class 2
{
void displayMotorcycle()
{
System.out.println("This is a Motorcycle");
}
}

Output
This is a Vehicle
This is a Vehicle
This is a Car
This is a Motorcycle

3. Java Program to illustrate Open Closed Principle

// class 1
// To store dimensions of a cuboid used to store length, breadth and height of a cuboid

class Cuboid
{
public double length;
public double breadth;
public double height;
}

// Class 2
//To store dimensions of a sphere
class Sphere
{

// Storing radius of a sphere


public double radius;
}

// Class 3
// This class helps to calculate the volume of geometric objects
class Application {

// Returning the total volume of the geometric objects


public double get_total_volume(Cuboid[] c_geo_objects,Sphere[] s_geo_objects)
{
double vol_sum = 0;

// Iteratively calculating the volume of each Cuboid and adding it to the total volume

// Iterating using for each loop to calculate the volume of a cuboid


for (Cuboid geo_obj : c_geo_objects)
{

vol_sum += geo_obj.length * geo_obj.breadth


* geo_obj.height;
}
4
// Iterating using for each loop to calculate the volume of a cuboid
for (Sphere geo_obj : s_geo_objects)
{

// Iteratively calculating the volume of each


// Sphere and adding it to the total volume
vol_sum += (4 / 3) * Math.PI * geo_obj.radius
* geo_obj.radius * geo_obj.radius;
}

// Returning the to total volume


return vol_sum;
}
}

// Class 4 Main class


public class GFG {
public static void main(String args[])
{
// Initializing a cuboid one as well as declaring
// its dimensions.
Cuboid cb1 = new Cuboid();
cb1.length = 5;
cb1.breadth = 10;
cb1.height = 15;

// Initializing a cuboid two as well as declaring its dimensions.


Cuboid cb2 = new Cuboid();
cb2.length = 2;
cb2.breadth = 4;
cb2.height = 6;

////Initializing a cuboid three as well as declaring its dimensions.


Cuboid cb3 = new Cuboid();
cb3.length = 3;
cb3.breadth = 12;
cb3.height = 15;

// Initializing and declaring an array of cuboids


Cuboid[] c_arr = new Cuboid[3];
c_arr[0] = cb1;
c_arr[1] = cb2;
c_arr[2] = cb3;

// Initializing a sphere one as well as declaring its dimension.


Sphere sp1 = new Sphere();
sp1.radius = 5;

// Initializing a sphere two as well as declaring its dimension.


Sphere sp2 = new Sphere();
sp2.radius = 2;

Sphere sp3 = new Sphere();


5
sp3.radius = 3;

// Initializing and declaring an array of spheres


Sphere[] s_arr = new Sphere[3];
s_arr[0] = sp1;
s_arr[1] = sp2;
s_arr[2] = sp3;

// Initializing Application class


Application app = new Application();

double vol = app.get_total_volume(c_arr, s_arr);

// Print and display the total volume


System.out.println("The total volume is " + vol);
}
}

You might also like