Posted in

ABSTRACTION CODING QUESTIONS IN JAVA

1. Write a program to create an abstract class Shape with an abstract method area(). Then, create two subclasses: Circle and Rectangle, both of which override the area() method to calculate the area of the respective shapes?

    abstract class Shape {
    abstract void area();
 }
class Circle extends Shape {
    double radius;
    Circle(double radius) {
        this.radius = radius;
    }  
    @Override
    void area() {
        System.out.println(“Area of Circle: ” + (3.14 * radius * radius));
    }
}
class Rectangle extends Shape {
    double length, width;
    Rectangle(double length, double width) {
        this.length = length;
        this.width = width;
    } 
    @Override
    void area() {
        System.out.println(“Area of Rectangle: ” + (length * width));
    }
}
public class Main {
    public static void main(String[] args) {
        Shape shape1 = new Circle(5);
        shape1.area();
        Shape shape2 = new Rectangle(4, 6);
        shape2.area();
    }
}

Output :

Area of Circle: 78.5
Area of Rectangle: 24.0

2. Write a program to design an abstract class Employee with an abstract method calculateSalary() then, create two subclasses: Manager and Developer, which calculate salary in different ways ?

   abstract class Employee {
    abstract void calculateSalary();
}
class Manager extends Employee {
    @Override
    void calculateSalary() {
        System.out.println(“Manager’s salary is calculated with a fixed amount.”);
    }
}
class Developer extends Employee {
    @Override
    void calculateSalary() {
        System.out.println(“Developer’s salary is calculated based on hourly rate.”);
    }
}
public class Main {
    public static void main(String[] args) {
        Employee emp1 = new Manager();
        emp1.calculateSalary();
        Employee emp2 = new Developer();
        emp2.calculateSalary();
    }
}

Output :

Manager’s salary is calculated with a fixed amount.
Developer’s salary is calculated based on hourly rate.

3.  Write a program to design an abstract class Account with an abstract method deposit(). Create subclasses SavingsAccount and CurrentAccount that implement the deposit method with different deposit logic?

abstract class Account {
    abstract void deposit();
}
class SavingsAccount extends Account {
    @Override
    void deposit() {
        System.out.println(“Deposit to Savings Account.”);
    }
}
class CurrentAccount extends Account {
    @Override
    void deposit() {
        System.out.println(“Deposit to Current Account.”);
    }
}
public class Main {
    public static void main(String[] args) {
        Account acc1 = new SavingsAccount();
        acc1.deposit();
        Account acc2 = new CurrentAccount();
        acc2.deposit();
    }
}

Output :

Deposit to Savings Account.
Deposit to Current Account.

4. Write a program to create an abstract class Appliance with an abstract method turnOn(). Then, create two subclasses: WashingMachine and Refrigerator that implement the turnOn() method with specific behavior?

  abstract class Appliance {
    abstract void turnOn();
}
class WashingMachine extends Appliance {
    @Override
    void turnOn() {
        System.out.println(“Washing machine is now ON.”);
    }
}
class Refrigerator extends Appliance {
    @Override
    void turnOn() {
        System.out.println(“Refrigerator is now ON.”);
    }
}
public class Main {
    public static void main(String[] args) {
        Appliance appliance1 = new WashingMachine();
        appliance1.turnOn();
        Appliance appliance2 = new Refrigerator();
        appliance2.turnOn();
    }
}

Output :

Washing machine is now ON.
Refrigerator is now ON.

5. Write a program to create an abstract class Animal with an abstract method makeSound(). Then, create two subclasses: Dog and Cat which override the makeSound() method to print specific sounds. Demonstrate abstraction by calling the makeSound() method on different objects?

    abstract class Animal {
    abstract void makeSound();
}
class Dog extends Animal {
    @Override
    void makeSound() {
        System.out.println(“Dog barks.”);
    }
}
class Cat extends Animal {
    @Override
    void makeSound() {
        System.out.println(“Cat meows.”);
    }
}
public class Main {
    public static void main(String[] args) {
        Animal animal1 = new Dog();
        animal1.makeSound();
        Animal animal2 = new Cat();
        animal2.makeSound();
    }
}

Output :

Dog barks.
Cat meows.

6. Write a program to create an abstract class Shape with an abstract method draw(). Then, create two subclasses: Circle and Square that implement the draw() method to print a shape-specific message. Write a program to demonstrate how abstraction is used to draw different shapes?

abstract class Shape {
    abstract void draw();
}
class Circle extends Shape {
    @Override
    void draw() {
        System.out.println(“Drawing a Circle.”);
    }
}
class Square extends Shape {
    @Override
    void draw() {
        System.out.println(“Drawing a Square.”);
    }
}
public class Main {
    public static void main(String[] args) {
        Shape shape1 = new Circle();
        shape1.draw();
        Shape shape2 = new Square();
        shape2.draw();
    }
}

Output :

Drawing a Circle.
Drawing a Square.

7. Write a program to create an abstract class Vehicle with an abstract method fuelType(). Then, create two subclasses: ElectricCar and GasCar, which implement fuelType() to return different types of fuel?

abstract class Vehicle {
    abstract void fuelType();
}
class ElectricCar extends Vehicle {
    @Override
    void fuelType() {
        System.out.println(“Electric Car uses electricity.”);
    }
}
class GasCar extends Vehicle {
    @Override
    void fuelType() {
        System.out.println(“Gas Car uses gasoline.”);
    }
}
public class Main {
    public static void main(String[] args) {
        Vehicle vehicle1 = new ElectricCar();
        vehicle1.fuelType();
        Vehicle vehicle2 = new GasCar();
        vehicle2.fuelType();
    }
}

Output :

Electric Car uses electricity.
Gas Car uses gasoline.

8. Write a Java program where you have an abstract class Person with an abstract method introduce(). Create two subclasses Student and Teacher, where the introduce() method introduces themselves differently?

    abstract class Person {
    abstract void introduce();
}
class Student extends Person {
    @Override
    void introduce() {
        System.out.println(“I am a Student.”);
    }
}
class Teacher extends Person {
    @Override
    void introduce() {
        System.out.println(“I am a Teacher.”);
    }
}
public class Main {
    public static void main(String[] args) {
        Person person1 = new Student();
        person1.introduce();
        Person person2 = new Teacher();
        person2.introduce();
    }
}

Output :

I am a Student.
I am a Teacher.

9. Write a program to create an abstract class Building with an abstract method constructionCost() then, create two subclasses House and Office that implement constructionCost() to calculate costs differently based on building type?

  abstract class Building {
    abstract void constructionCost();
}
class House extends Building {
    @Override
    void constructionCost() {
        double cost = 100000;
        System.out.println(“Construction cost for House: $” + cost);
    }
}
class Office extends Building {
    @Override
    void constructionCost() {
        double cost = 500000;
        System.out.println(“Construction cost for Office: $” + cost);
    }
}
public class Main {
    public static void main(String[] args) {
        // Create instances of House and Office
        Building building1 = new House();
        building1.constructionCost();
        Building building2 = new Office();
        building2.constructionCost();
    }
}

Output :

Construction cost for House: $100000.0
Construction cost for Office: $500000.0

Leave a Reply

Your email address will not be published. Required fields are marked *