My two-year-old son is generally exceptionally well-behaved and polite.
He was saying "please" and "thank you" at a very early age, and would apologize if he had problems sharing or accidentally hurt someone.
However, now at 26 months, he has started to really push our boundaries.
Most recently, he refuses to say "sorry" when he hurts someone.
On one occasion, he was playing too rough with me, and pinched my neck pretty hard. I said "ow, that hurt. You've got to be careful. Can you say you're sorry?".
On another, he was bouncing on the bed when he landed hard on my wife, and hurt her. She also asked for an apology.
Both times he said "no!", laughed, cried, covered his eyes, ran away, and generally avoided apologizing. We kept insisting that he apologize, and I tried explaining to him that sometimes you can hurt someone by accident, but that apologizing showed that you didn't mean to hurt them.
He asked "why?". I tried simplifying it, saying that "good boys say sorry so they don't hurt other people's feelings". He then said he wanted to be a bad boy. I said "people don't like to be around bad boys". He said "why?". I said "because they hurt people and don't say sorry. People don't like to get hurt." However, he responded by saying that he liked to get hurt.
At this point, I can't tell how much of this is him just testing boundaries, and how much is him simply not understanding the concepts.
In the past, taking away the toys he was playing with was usually enough to get him to apologize, but that no longer works. Last night he was put to bed about 30 minutes early, with no bedtime stories, because "bad boys don't get stories read". However, we still got no apology.
What is the best strategy for getting him to apologize for when he does something that hurts someone?