There are at least two ways parents could test as an O but actually be an A, B, or AB genetically.
The first is a rare blood type called the Bombay blood group. People with the Bombay blood group have the A and/or B genes but test as an O.
For the A and B genes to do their job, they need another gene, H. If someone has two broken H genes, then their blood cells look like an O person's blood cells even if they have the A and/or B genes.
( What happens when someone with the Bombay blood group has kids?)
Most likely their hidden A and B genes will be seen in their children .
Another way for an apparent O to have an AB child is if the "O" parent has one of a couple of rare subtypes of the A gene. These genes with names like Ax (Ao) or Am make very little A protein. So little, in fact, that the protein test sometimes misses it and the person can be mistaken for an O.
If both parents have Rh+ blood with the +- genes, they could have children who are ++, +-, or --. In other words, their children could be either Rh positive or Rh negative. Children who are Rh negative can have parents who are either Rh positive or Rh negative.
I hope this helps.