Как научиться писать такой ООП код?
Мне в школе физрук говорил:"Чтобы много подтягиваться - нужно много подтягиваться".
Читайте и практикуйтесь, что тут еще посоветовать. Волшебной пилюли, которую съешь и всему научишься, не существует