Richard,
I think the bit you are missing is that the interface realized by the port may not be the same interface realized by the class. In general, the port realization may be a specific set of services provided by the class. These may or may not be the same ones as the class realizes.
For example, suppose the class realization is a complete CRUD "interface" set, and in addition the class exposes a derived property, say "CurrentColor". We can define several ports on the class and impose certain constraints on the port, say "UserType" that will constrain the exposed methods to, say, (A) CRU and GetCurrentColor only, (B) R only and (C) all.
We can define interface elements for A, B and C that are subsets of the CRUD interface and implement each of those as a particular port. This is supported by making each of A,B and C derive from the CRUD interface.
Then we can make each port realize the specific exposure contract we want. But the class must realize the entire and original CRUD interface, as well as its "value added" methods and properties.
So, in short, if a port realizes a specified interface it is not encumbent on the class to "inherit therefrom". It is only mandatory that the modeller ensure that the class can fully implement all the required services specified by the ports.
hth
bruce
...
trying to put this more simply, the class must obey the contract specified by it's interface realizations, the ports must obey the contract(s) specified by their realizations, it is up to the modeller to ensure that all of these are consistent.