La herencia de métodos es útil para permitir a una clase modificar su comportamiento respecto de su superclase. Esto puede ser hecho agregando nuevos métodos, o redefiniendo los métodos heredados. Smalltalk también permite que las instancias de una sublcase hereden los métodos de su superclase y de más altas superclases en la jerarquía.
Agregando Métodos
El Agregar nuevos métodos puede hacerse de manera muy simple, agregando los métodos, ya sean de instancia o de clase, en la definición de la clase. Como ya se ha expuesto antes, la clase soporta los métodos de su superclase, más los nuevos métodos. El siguiente código es un ejemplo de cómo agregar métodos:
agregarPersona Crea una nueva instancia de la clase Persona, y la agrega a la colección
En el gráfico anterior, la definición de la clase Cliente también desearía gestionar los pedidos de los clientes. Entonces, la definición de la clase deseará agregar: pedidosCliente, pedidosCliente:, y agregarPedidoCliente:. La definición de la clase Cliente puede ahora soportar todos los mensajes o métodos de la clase Persona y los nuevos tres mensajes.
La redefinición de un método heredado es otra herramienta que los usuarios tienen para proveer de un comportamiento único a una clase. Si un objeto recibe un mensaje que tiene un método para ese mensaje en la definición de la clase, el objeto busca en la jerarquía hasta que encuentra el método con ese nombre. Los métodos heredados no pueden eliminarse, pero hay algunas veces en que el método de la superclase no refleja las necesidades de la subclase. En este caso, la subclase provee un método con el mismo nombre con ningún código en el método, ó con un código que emita un mensaje de error, ó con algún otro método. Este proceso simplemente remplaza el comportamiento de la superclase por otro comportamiento que sólo se ve reflejado en la subclase.