Subject.java:
package subjects;
public class Subject {
private String subjectName;
private int subjectCredits;
public void setSubjectDetails(String name, int credits) {
subjectName = name;
subjectCredits = credits;
}
public void displaySubjectDetails() {
System.out.println("Subject Name: " + subjectName);
System.out.println("Subject Credits: " + subjectCredits);
}
}Department.java:
package institute;
public class Department {
protected String departmentName;
public String departmentCode;
public void setDepartmentDetails(String name, String code) {
departmentName = name;
departmentCode = code;
}
public void displayDepartmentDetails() {
System.out.println("Department Name: " + departmentName);
System.out.println("Department Code: " + departmentCode);
}
}Course.java:
package institute;
public class Course extends Department {
private String courseName;
private int courseDuration;
public void setCourseDetails(String name, int duration) {
courseName = name;
courseDuration = duration;
}
public void displayCourseDetails() {
System.out.println("Course Name: " + courseName);
System.out.println("Course Duration: " + courseDuration + " years");
displayDepartmentDetails();
}
}ProtectedAndPublicDemo.java:
package demo;
import subjects.Subject;
import institute.Course;
public class ProtectedAndPublicDemo {
public static void main(String[] args) {
Course course = new Course();
course.setDepartmentDetails("Computer Science", "CS101");
course.setCourseDetails("Software Engineering", 4);
System.out.println("Course Details:");
course.displayCourseDetails();
Subject subject = new Subject();
subject.setSubjectDetails("Data Structures", 3);
System.out.println("\nSubject Details:");
subject.displaySubjectDetails();
// Trying to access departmentName (protected) directly
// Uncommenting the following line will give an error:
// System.out.println(course.departmentName); // Error: departmentName has protected access in Department
// Trying to access private attributes of Subject directly
// Uncommenting the following lines will give an error:
// System.out.println(subject.subjectName); // Error: subjectName has private access in Subject
// System.out.println(subject.subjectCredits); // Error: subjectCredits has private access in Subject
}
}