I think that this particular approach might be useful only for individuals with a bit of time on their hands, but it really helped me. When I was trying to grasp OOP I decided to make a project using the Seaside framework for Smalltalk. There's an excellent free book available here:
http://book.seaside.st/bookWhile it's not explicitly an OO tutorial it was really helpful for me, coming from a web development background, to better understand how ideas like inheritance play out in a real application. Seaside is a component-based framework, so ideas like instances and subclassing objects with different features were very concrete. On top of that, when viewing the site in your browser in dev mode you can click on any component and explore its state.
Of course one also has to pick up Smalltalk for this to work out, so it does require a particular commitment! But Smalltalk itself is a great way to learn OO, as it's based entirely around objects and messages, using a very simple syntax. Even if other OO languages don't fully adhere to this idea, it's still helpful when moving on to other ones. A great way to learn Smalltalk is Pharo by Example. http://pharobyexample.org/ Actually, one could just use this on its own to learn OO. But playing with Seaside was a lot of fun!
Otherwise, I found the OO portion of Learn Python the Hard Way to be quite good, and that's probably the better choice for pretty much everyone. :)