public abstract class Animal
public class Snake extends Animal
public class Lion extends Animal

があるとします。
ここで、Animalをランダムに選別して、吠えることができるなら、吠えるようにするという機能を付与したいとします。
私は、下の二つのどちらかになると思うのですが、どちらが良いのでしょうか?

(1)interfaceを作り、Lionでimplementsする
public interface barkable() {
 public void bark();
}

(2)Animalに下記を追加し、Lionでオーバーライドする
public boolean isBarkable() { return false; }
public void bark() { throw new UnsupportedOperationException(this.getClass().getName() + " can't bark! "); }