Hazle caso a cbrn, sabe de los que habla.
yo la POO la entiendo de la siguiente forma, YO LA ENTIENDO ASÍ no significa que tú lo vayas a hacer:
tenemos un programa por ejemplo que simula un pato:
la clase pato por ejemplo tiene como objeto:
animal
porque un pato es un animal
y como tal realiza acciones, que serian las funciones:
volar
graznar
nadar
El siguiente pato que tienes es un pato reclamo, este puede graznar como un pato animal, pero no puede ni nadar ni volar, entonces necesitamos crear un objeto distinto, que sería reclamo. Con la función graznar del pato animal.
Ahora bien, un pato también puede ser un pato de goma, entonces, un pato de goma puede graznar? si, con un sonido que no es como el de animal, pero al final lo aprietas y grazna. ¿Puede volar? no ¿puede nadar? si, lo mismo que el anterior, puede nadar pero no de la misma forma que un pato animal.
Entonces deberías de crear un objeto pato de goma con una nueva función graznar y nadar....
y eso la clase pato
Ahora tenemos una clase avión, ponemos avioneta.
Podemos reutilizar la función volar para la avioneta importada de la clase pato, porque una avioneta vuela como un pato.
No se si te estoy rayando o no, pero ya te digo que yo si me entiendo.
Al final como dice cbrn es realizar ejercicios, la POO como su nombre indica es orientada a objetos, entonces son estos quienes llevarán el peso del programa.
Desde mi punto de vista, realizar un proyecto propio te permite aprender desde el comienzo hasta el fin todo el desarrollo del programa y la lógica tras él