13)Demonstrate the use of abstract classes. Write a Person abstract class and then subclass that into Student and Faculty classes. Use appropriate fields and methods.

PHOTO EMBED

Mon Jul 08 2024 06:10:35 GMT+0000 (Coordinated Universal Time)

Saved by @varuntej #java

// Abstract class: Person
abstract class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public abstract void displayDetails();

    public void greet() {
        System.out.println("Hello, I am " + name + ".");
    }
}

// Subclass: Student
class Student extends Person {
    private int studentId;

    public Student(String name, int age, int studentId) {
        super(name, age);
        this.studentId = studentId;
    }

    @Override
    public void displayDetails() {
        System.out.println("Student - Name: " + super.getName() + ", Age: " + super.getAge() +
                ", Student ID: " + studentId);
    }

    public void study() {
        System.out.println("Student is studying.");
    }
}

// Subclass: Faculty
class Faculty extends Person {
    private String department;

    public Faculty(String name, int age, String department) {
        super(name, age);
        this.department = department;
    }

    @Override
    public void displayDetails() {
        System.out.println("Faculty - Name: " + super.getName() + ", Age: " + super.getAge() +
                ", Department: " + department);
    }

    public void teach() {
        System.out.println("Faculty is teaching.");
    }
}

public class PersonExample {
    public static void main(String[] args) {
        Student student = new Student("John", 20, 123);
        Faculty faculty = new Faculty("Dr. Smith", 35, "Computer Science");

        student.displayDetails();
        student.greet();
        student.study();

        System.out.println();

        faculty.displayDetails();
        faculty.greet();
        faculty.teach();
    }
}
content_copyCOPY