En java no existen los metodos/funciones "sueltos", todo metodo/funcion deve estar encapsulado dentro de una clase.
Las clases son representaciones de objetos/situaciones/acciones del mundo real por ejemplo puedes tener una clase:
Auto o una clase:
Gravedad.
Aunque la clase
Auto puede cambiar segun su contexto, por ejemplo no vas a tener la misma representacion de
Auto para un juego que para un autolavado.
En cuanto a la herencia es muy sencillo es una forma de simplificar el trabajo a la hora de trabajar con clases muy paresidas, por ejemplo un
Auto y una
Motocicleta tienen algo en comun y es que son
Vehículos.
Entonces tendrias algo asi:
vehículo -> Auto
-> Motocicleta
de esta forma digamos que tienes un metodo
lavar en una clase llamada
AutoLavado:
Código:
public class AutoLavado {
public void lavar(Vehículo vehículo){
// cuerpo del metodo
}
}
Si te fijas en el metodo no se hace referencia a un
Auto o a una
Motocicleta, se hace referencia a un
Vehículo.
Por lo tanto tu puedes hacer esto:
Código:
AutoLavado autoLavado = new AutoLavado();
Auto auto = new Auto();
autoLavado.lavar(auto);
Motocicleta moto = new Motocicleta();
autoLavado.lavar(moto);
Los JavaBeans son simples Clases que siguen ciertas convenciones que puedes consultar en:
http://es.wikipedia.org/wiki/JavaBean o en la documentacion de java.