My question involves specifically Java, abstract classes, and the use of protected data. I am being told that all the data should be private, and protected getters/setters
If you don't need your child to directly access it, why would you let them ?
It isn't a down side to use protected. But if it isn't necessary, maybe it's better to avoid it and control access on your fields.