Este es un concepto que puede resultar difícil de entender.
Yo te recomendaría que te leyeses algún libro sobre orientación a objetos para comprender por qué se hacen así las cosas tanto en java como en otros lenguajes.
Ayer mismo estuve leyendo uno que lo explica muy bien (aunque utiliza como base C++), es un libro gratuito disponible en openlibra que (creo que) se llama Programación orientada a objetos 2012 y está en castellano.
Yo te recomendaría que te leyeses algún libro sobre orientación a objetos para comprender por qué se hacen así las cosas tanto en java como en otros lenguajes.
Ayer mismo estuve leyendo uno que lo explica muy bien (aunque utiliza como base C++), es un libro gratuito disponible en openlibra que (creo que) se llama Programación orientada a objetos 2012 y está en castellano.