public class Capitulo12Heranca {
    static abstract class MensagemBot {
        private final String categoria;

        protected MensagemBot(String categoria) {
            this.categoria = categoria;
        }

        public String getCategoria() {
            return categoria;
        }

        public abstract String texto();
    }

    static final class Saudacao extends MensagemBot {
        Saudacao() {
            super("saudação");
        }

        @Override
        public String texto() {
            return "Olá! Vamos estudar Java?";
        }
    }

    static final class Dica extends MensagemBot {
        Dica() {
            super("dica");
        }

        @Override
        public String texto() {
            return "Mantenha métodos pequenos e testáveis.";
        }
    }

    public static void main(String[] args) {
        MensagemBot mensagem = new Dica();
        System.out.println(mensagem.getCategoria());
        System.out.println(mensagem.texto());
    }
}
