I'm a newbie in OO design and there is one of SOLID principles is LISKOV Substitution Principle.
But in my design I've a classes named StartCommunicationMessage, ContinueCommunicationMessage, EndCommunicationMessage, AbortCommunicationMessage.
StartCommunicationMessage contains: commID, qualityOfCommunication, DestAddr, origAddr EndCommunicationMessage contains: commID, qualityOfCommunication, DestAddr ContinueCommunicationMessage contains: commID, qualityOfCommunication, DestAddr, origAddr AbortCommunicationMessage contains: commID, DestAddr
So I can make make a parent for all of these message called CommunicationMessage that contains: commID, DestAddr
But qualityOfCommunication is not found in Abort, so it will be repeated as well as it getter and setter in all other classes which make a duplication.
Is there a way to reduce this duplication either by violating the above rule or anything else?