I have an IData class which extends DataMain. Data implements IData. The reason why i had this design is because I want to add some methods to Data class and still use the interface. To make this possible i added a new interface that extends DataMain and inside this interface i defined the added method. Now my problem is serialization. I want to serialize IData since i'm passing it as a paramater to my RemoteData object. But since it is an interface it is not possible. Is there a way to do it? If i serialize Data and pass it instead then i wouldnt be able to use some of the new methods i added.