1
resposta

Dúvida sobre o uso do @Override

No Exercício praticando java sobre herança no exercício que usa @Override o primeiro código foi feito com @override e funcionou ,tirei o @Override para ver se ia dar erro mais rodou normalmente minha dúvida é usar @Override é só uma boa prática? porque o programa rodou sem ele

Segue o código abaixo sem @Override:

public class Main {
public static void main(String[] args) {
Email email1 = new Email("cliente@exemplo.com ","Aproveite nossos descontos esta semana. ", "Promoção especial! " );
email1.send();

Sms sms1 = new Sms("(11) 98765-4321  " ," Sua fatura foi paga com sucesso.");
sms1.send();

Push push1 = new Push("usuario_app", "Você tem uma nova mensagem não lida.  ", "Novidade! " );
push1.send();

}}
public class Notification {

private String recipient;
private String message;

public Notification(String recipient, String message) {
    this.recipient = recipient;
    this.message = message;
}

public String getRecipient() {
    return recipient;
}

public void setRecipient(String recipient) {
    this.recipient = recipient;
}

public String getMessage() {
    return message;
}

public void setMessage(String message) {
    this.message = message;
}

public void send(){
}

}

public class Email extends Notification {

String subject;
public Email(String recipient, String message , String subject) {
super(recipient, message);
this.subject = subject;
}

public void send(){
  System.out.println("Sending email to: " + getRecipient());
  System.out.println("Assunto: " + subject );
  System.out.println("Corpo: " + getMessage());
  System.out.println(" ");
}

}
public class Sms extends Notification {

public Sms(String recipient, String message) {
    super(recipient, message);
}

public void send(){
    System.out.println("Sending SMS to:: " + getRecipient());
    System.out.println("Message: " + getMessage());
    System.out.println(" ");
}

}
public class Push extends Notification {

String title;
public Push(String recipient, String message,String title) {
    super(recipient, message);
    this.title = title;
}



public void send(){
    System.out.println("Sending email to: " + getRecipient());
    System.out.println("Title: " + title);
    System.out.println("Contents: " + getMessage());
    System.out.println(" ");
}

}

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Oi Eduardo, tudo bem? 😊

A anotação @Override em Java serve para indicar ao compilador que você está sobrescrevendo um método da superclasse na sua classe filha.

O uso do @Override não é estritamente necessário para que o programa funcione, mas é altamente recomendado por vários motivos:

  • Segurança: Garante que o método que você pretende sobrescrever realmente existe na superclasse. Se você digitar o nome do método incorretamente, o compilador mostrará um erro, evitando comportamentos inesperados. 🤔
  • Legibilidade: Facilita a leitura e o entendimento do código, indicando claramente que aquele método está sendo sobrescrito.
  • Manutenção: Ajuda a evitar erros em refatorações futuras. Se a assinatura do método na superclasse for alterada, o compilador avisará sobre os métodos sobrescritos que precisam ser atualizados.

Em resumo, usar @Override é uma boa prática de programação que torna o código mais robusto, legível e fácil de manter. 👍

🎓 Para saber mais:

Espero ter ajudado! 😃