I just wanted you all to know that I did look in previous posts for this topic, but I never found what I was looking for design wise...
I was reading some stuff about the Factory
Pattern and creating objects. I have this object... called school.
Well right now it is a class that other classes extend... HighSchool, MiddleSchool, PreSchool, etc...
We all schools have a principal, address, etc.. members. They all have the getters and setters to go along with those members. That tells me that I don't need a abstract class or an interface because 1) I want to be able to pass the School object around. I cannot do that if it is an abstract class. If the School object is an interface, I dont want to write a getPrincipal and setPrincipal for each subclass. But I do want certain methods that each subclass should provide the details for... Like enrollStudent method. What do I do in my SchoolClass? Create an empty enrollStudent? Now if I do that, I take a chance of someone not implementing their own enrollStudent method.
What are my options?