When there is data in both tables (a and b) and inheritance is removed, the data is not removed. Both a and b are then independent tables with data of independent objects. The reason is that de Runtime cannot presume which data must be removed.
When you apply inheritance to existing tables, the data stays valid. Id's are changed (this is needed) and the data of system columns (like owner and changedby) will be moved to the table of the highest level in the inheritance tree, id's in association tables are changed, but all will be done automatically.
Addition: with inheritance (B derives from A), each row in B belongs to a specific row in A. When inheritance is added and B contains ten rows, ten new corresponding rows will be added to A. These rows have new id's and the id's in B will be updated with these id's. Columns in A will be empty for the rows that belong to rows in B, because the Runtime doesn't know which values the colums must have. After the synchronization, opening a dataview of type A or B will not cause errors.