// 1.
Job and SoftwareDeveloper classes
import [Link];
class Job {
protected double salary;
protected int yearsOfExperience;
protected String jobPosition;
protected String companyName;
public Job(double salary, int yearsOfExperience, String jobPosition, String
companyName) {
[Link] = salary;
[Link] = yearsOfExperience;
[Link] = jobPosition;
[Link] = companyName;
}
public void getSalary() {
[Link]("Salary: $" + salary);
}
public void displaySummaryDetails() {
[Link]("Position: " + jobPosition + "\nCompany: " + companyName +
"\nExperience: " + yearsOfExperience + " years\nSalary: $" + salary);
}
}
class SoftwareDeveloper extends Job {
public SoftwareDeveloper(double salary, int yearsOfExperience, String jobPosition,
String companyName) {
super(salary, yearsOfExperience, jobPosition, companyName);
}
@Override
public void getSalary() {
if (yearsOfExperience > 3) {
salary *= 1.3;
} else {
salary *= 1.05;
}
[Link]("Updated Salary: $" + salary);
}
}
// 2. Triangle class
class Triangle {
private int a, b, c;
public Triangle() {
this.a = 3;
this.b = 4;
this.c = 5;
}
public void calculate() {
int perimeter = a + b + c;
double s = perimeter / 2.0;
double area = [Link](s * (s - a) * (s - b) * (s - c));
[Link]("Area: " + area + ", Perimeter: " + perimeter);
}
}
// 3. Circle class
class Circle {
private double radius;
private final double PI = 3.1416;
public Circle() {
[Link] = 5;
}
public void setRadius(double radius) {
[Link] = radius;
}
public void calculateCircumference() {
[Link]("Circumference: " + (2 * PI * radius));
}
}
// 4. Abstract Parent class
abstract class Parent {
abstract void message();
}
class Subclass1 extends Parent {
void message() {
[Link]("This is the first subclass");
}
}
class Subclass2 extends Parent {
void message() {
[Link]("This is the second subclass");
}
}
// 5. Abstract Bank class
abstract class Bank {
abstract int getBalance();
}
class BankA extends Bank {
int getBalance() { return 100; }
}
class BankB extends Bank {
int getBalance() { return 150; }
}
class BankC extends Bank {
int getBalance() { return 200; }
}
// 6. Abstract Marks class
abstract class Marks {
abstract double getPercentage();
}
class A extends Marks {
private int m1, m2, m3;
public A(int m1, int m2, int m3) {
this.m1 = m1; this.m2 = m2; this.m3 = m3;
}
double getPercentage() { return (m1 + m2 + m3) / 3.0; }
}
class B extends Marks {
private int m1, m2, m3, m4;
public B(int m1, int m2, int m3, int m4) {
this.m1 = m1; this.m2 = m2; this.m3 = m3; this.m4 = m4;
}
double getPercentage() { return (m1 + m2 + m3 + m4) / 4.0; }
}
// 7. Abstract class with constructor
abstract class AbstractClass {
AbstractClass() { [Link]("This is the constructor of the abstract
class"); }
abstract void a_method();
void normalMethod() { [Link]("This is the normal method of the abstract
class"); }
}
class SubClass extends AbstractClass {
void a_method() { [Link]("This is an abstract method"); }
}
// 8. Shape class with multiple areas
abstract class Shape {
abstract void RectangleArea(double length, double breadth);
abstract void SquareArea(double side);
abstract void CircleArea(double radius);
}
class Area extends Shape {
void RectangleArea(double length, double breadth) {
[Link]("Rectangle Area: " + (length * breadth));
}
void SquareArea(double side) {
[Link]("Square Area: " + (side * side));
}
void CircleArea(double radius) {
[Link]("Circle Area: " + (3.1416 * radius * radius));
}
}
// Main class to test all implementations
public class Main {
public static void main(String[] args) {
// SoftwareDeveloper Instances
SoftwareDeveloper dev1 = new SoftwareDeveloper(50000, 2, "Junior Developer",
"TechCorp");
SoftwareDeveloper dev2 = new SoftwareDeveloper(80000, 5, "Senior Developer",
"InnoSoft");
SoftwareDeveloper dev3 = new SoftwareDeveloper(60000, 3, "Mid-Level Developer",
"CodeWorld");
[Link]();
[Link]();
[Link]();
// Triangle calculations
Triangle tri = new Triangle();
[Link]();
// Circle calculations
Circle circle1 = new Circle();
[Link]();
Circle circle2 = new Circle();
[Link](10);
[Link]();
// Abstract class usage
Parent p1 = new Subclass1();
Parent p2 = new Subclass2();
[Link]();
[Link]();
// Bank balances
Bank b1 = new BankA();
Bank b2 = new BankB();
Bank b3 = new BankC();
[Link]("Bank A Balance: $" + [Link]());
[Link]("Bank B Balance: $" + [Link]());
[Link]("Bank C Balance: $" + [Link]());
// Marks calculation
A studentA = new A(85, 90, 88);
B studentB = new B(75, 80, 78, 85);
[Link]("Student A Percentage: " + [Link]() + "%");
[Link]("Student B Percentage: " + [Link]() + "%");
// Abstract class with constructor
SubClass obj = new SubClass();
obj.a_method();
[Link]();
// Shape area calculations
Area areaObj = new Area();
[Link](10, 5);
[Link](4);
[Link](7);
}
}