- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Java Program to Calculate Interest for FDs and RDs using Inheritance
Inheritance is a concept that allows us to access the properties and behaviors of one class to another class. The class whose methods and member variables are inherited is known as super class or parent class and the class that inherits these methods and member variables is known as child class or sub class. In java, we use ‘extends’ keyword to inherit a class.
In this article, we will discuss a java program to calculate interest for FDs and RDs using Inheritance. First, create these four java files in your local machine ide −
Acnt.java − This file will contain an abstract class ‘Acnt’ to store account details like interest rate and amount. It will also have an abstract method ‘calcIntrst’ with a parameter ‘amnt’ to calculate the interest rate.
FDacnt.java − It will calculate the interest rate for Fixed deposits(FDs). In it, ‘FDacnt’ class will inherit the ‘Acnt’ class and override the ‘calcIntrst’ method.
RDacnt.java − It will calculate the interest rate for Recurring deposits(FDs). In it, ‘RDacnt’ class will inherit the ‘Acnt’ class and override the ‘calcIntrst’ method.
Intrst.java − This file will contain the main method.
Example
Acnt.java
public abstract class Acnt{ double intrstRate; double amnt; abstract double calcIntrst(double amnt); }
FDacnt.java
import java.util.*; public class FDacnt extends Acnt { double FDintrstRate; double FDAmnt; int period; int age; double Gen, SenCitizen; Scanner input = new Scanner(System.in); @Override double calcIntrst(double amnt){ this.FDAmnt = amnt; System.out.println("Enter your FD days"); period = input.nextInt(); System.out.println("Enter the age of account holder "); age = input.nextInt(); if (amnt < 10000000) { if (period >= 7 && period <= 14) { Gen = 0.0450; SenCitizen = 0.0500; } else if (period >= 15 && period <= 29) { Gen = 0.0470; SenCitizen = 0.0525; } else if (period >= 30 && period <= 45) { Gen = 0.0550; SenCitizen = 0.0600; } else if (period >= 45 && period <= 60) { Gen = 0.0700; SenCitizen = 0.0750; } else if (period >= 61 && period <= 184) { Gen = 0.0750; SenCitizen = 0.0800; } else if (period >= 185 && period <= 365) { Gen = 0.0800; SenCitizen = 0.0850; } FDintrstRate = (age < 50) ? Gen : SenCitizen; } else { if (period >= 7 && period <= 14) { intrstRate = 0.065; } else if (period >= 15 && period <= 29) { intrstRate = 0.0675; } else if (period >= 30 && period <= 45) { intrstRate = 0.00675; } else if (period >= 45 && period <= 60) { intrstRate = 0.080; } else if (period >= 61 && period <= 184) { intrstRate = 0.0850; } else if (period >= 185 && period <= 365) { intrstRate = 0.10; } } return FDAmnt * FDintrstRate; } }
RDacnt.java
import java.util.*; public class RDacnt extends Acnt{ double RDIntrstRate; double RDamnt; int periods; double monthlyAmnt; double Gen, SenCitizen; Scanner input = new Scanner(System.in); @Override double calcIntrst(double amnt){ this.RDamnt = amnt; System.out.println("Enter your RD months"); periods =input.nextInt(); System.out.println("Enter the age of account holder"); int age =input.nextInt(); if (periods >= 0 && periods <= 6) { Gen = .0750; SenCitizen = 0.080; } else if (periods >= 7 && periods <= 9) { Gen = .0775; SenCitizen = 0.0825; } else if (periods >= 10 && periods <= 12) { Gen = .0800; SenCitizen = 0.0850; } else if (periods >= 13 && periods <= 15) { Gen = .0825; SenCitizen = 0.0875; } else if (periods >= 16 && periods <= 18) { Gen = .0850; SenCitizen = 0.0900; } else if (periods >= 22) { Gen = .0875; SenCitizen = 0.0925; } RDIntrstRate = (age < 50) ? Gen : SenCitizen; return RDamnt * RDIntrstRate; } }
Intrst.java
import java.util.*; public class Intrst{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("Choose from the Options: " + "\n1." + " FD Interest" + " \n2." + " RD Interest" + "\n3." + " Exit"); int choice = sc.nextInt(); switch (choice){ case 1: FDacnt fds = new FDacnt(); System.out.println("Enter your FD Amount"); double fAmnt = sc.nextDouble(); System.out.println("Interest gained on your FD Amount is: $ " + fds.calcIntrst(fAmnt)); break; case 2: RDacnt rds = new RDacnt(); System.out.println("Enter your RD amount"); double RAmnt = sc.nextDouble(); System.out.println("Interest gained on your RD Amount is: $ " + rds.calcIntrst(RAmnt)); break; default: System.out.println("Choose correct choice"); } } }
To compile this code type the command: javac Intrst.java Now to run: java Intrst
Output
Choose from the Options: 1. FD Interest 2. RD Interest 3. Exit 1 Enter your FD Amount 56000 Enter your FD days 325 Enter the age of account holder 32 Interest gained on your FD Amount is: $ 4480.0
The above program is a menu driven program. When we execute this program, three options will be visible on screen. Choose 1 for calculating interest rate for FDs and 2 for RDs.
Conclusion
We have used the concept of Hierarchical Inheritance to calculate interest for FDs and RDs. The class ‘Acnt’ is inherited by its two sub classes ‘FDacnt’ and ‘RDacnt’.