diff --git a/Human.java b/Human.java new file mode 100644 index 0000000..f78841b --- /dev/null +++ b/Human.java @@ -0,0 +1,21 @@ +package exercise1; + +public abstract class Human { + private String fullName; + + public String getFullName() { + return fullName; + } + + public void setFullName(String fullName) { + this.fullName = fullName; + } + + public void sayMyName() { + System.out.println("I'm a human!"); + } + + public final void staticPrint() { + System.out.println("This function should always print this string in all subclasses"); + } +} diff --git a/Professor.java b/Professor.java new file mode 100644 index 0000000..8f33cd8 --- /dev/null +++ b/Professor.java @@ -0,0 +1,35 @@ +package exercise1; + +public class Professor extends Human { + private String professorSpecialty; + private String professorFaculty; + private int numberOfCourses; + + public String getProfessorSpecialty() { + return professorSpecialty; + } + + public void setProfessorSpecialty(String professorSpecialty) { + this.professorSpecialty = professorSpecialty; + } + + public String getProfessorFaculty() { + return professorFaculty; + } + + public void setProfessorFaculty(String professorFaculty) { + this.professorFaculty = professorFaculty; + } + + public int getNumberOfCourses() { + return numberOfCourses; + } + + public void setNumberOfCourses(int numberOfCourses) { + this.numberOfCourses = numberOfCourses; + } + + public void sayMyName() { + System.out.println("Full Name: " + getFullName() + ", Faculty: " + getProfessorFaculty()); + } +} diff --git a/main.java b/main.java new file mode 100644 index 0000000..de8e38a --- /dev/null +++ b/main.java @@ -0,0 +1,36 @@ +package exercise1; + +public class Professor extends Human { + private String professorSpecialty; + private String professorFaculty; + private int numberOfCourses; + + public String getProfessorSpecialty() { + return professorSpecialty; + } + + public void setProfessorSpecialty(String professorSpecialty) { + this.professorSpecialty = professorSpecialty; + } + + public String getProfessorFaculty() { + return professorFaculty; + } + + public void setProfessorFaculty(String professorFaculty) { + this.professorFaculty = professorFaculty; + } + + public int getNumberOfCourses() { + return numberOfCourses; + } + + public void setNumberOfCourses(int numberOfCourses) { + this.numberOfCourses = numberOfCourses; + } + + @Override + public void sayMyName() { + System.out.println("Full Name: " + getFullName() + ", Faculty: " + getProfessorFaculty()); + } +} diff --git a/student.java b/student.java new file mode 100644 index 0000000..d335c54 --- /dev/null +++ b/student.java @@ -0,0 +1,36 @@ +package exercise1; + +public class Student extends Human { + private String studentNumber; + private String majorName; + private String universityName; + + public String getStudentNumber() { + return studentNumber; + } + + public void setStudentNumber(String studentNumber) { + this.studentNumber = studentNumber; + } + + public String getMajorName() { + return majorName; + } + + public void setMajorName(String majorName) { + this.majorName = majorName; + } + + public String getUniversityName() { + return universityName; + } + + public void setUniversityName(String universityName) { + this.universityName = universityName; + } + + + public void sayMyName() { + System.out.println("Full Name: " + getFullName()); + } +} diff --git a/tozihhat.java b/tozihhat.java new file mode 100644 index 0000000..a82db9f --- /dev/null +++ b/tozihhat.java @@ -0,0 +1,6 @@ + +/* +هر دو کلاس Student و Professor از کلاس Human ارث‌بری می‌کنند و به این ترتیب توانایی استفاده از ویژگی‌ها و روش‌های ارث‌بری شده را دارند. +با این حال، خروجی‌هایی که از متدهای sayMyName برای نمونه‌های Student و Professor دریافت می‌شود نشان می‌دهد که مقادیر fullName و professorFaculty +برای آنها مقداردهی نشده است، به همین دلیل خروجی این مقادیر به صورت null است. +*/ \ No newline at end of file