Se tu non dichiari e definisci il metodo, allora dov'è che dici esplicitamente cosa quel metodo deve fare? Cioè cosa succede quando fai fido.cammina()? Chi lo stabilisce? La definizione del metodo, che contiene il codice che viene eseguito quando si richiama il metodo.
Invece la dichiarazione serve per dire che la classe di cui fa parte fido dispone di un metodo che si chiama cammina.