Alguém pode me explicar e/ou exemplificar como funciona o override com os métodos da classe? Ainda estou um pouco confuso sobre o tema!
Alguém pode me explicar e/ou exemplificar como funciona o override com os métodos da classe? Ainda estou um pouco confuso sobre o tema!
Oie Gustavo, tudo bem contigo?
Override também conhecido como sobrescrita é quando reescrevemos a lógica de um método que foi herdado da classe mãe.
Por exemplo:
public class Funcionario{
double salario;
public void setSalario(double salario){
this.salario = salario + 500;
}
}
class Analista extends Funcionario{ // Analista é filha de Funcionário, por isso herda todos os seus método e atributos
@Override // sobrescrita do método setSalario
public void setSalario(double salario) {
this.salario = salario + 100; // o nome do método e a referencia recebida são os mesmos, mas a lógica dentro dele é diferente
}
}
Espero que eu tenha ajudado, qualquer dúvida ou problema fico a disposição :)
Bons estudos!
Oi Gustavo!
Legal, POO é um excelente tema para estudos!
Assim como o Igor disse acima, vou tentar de alguma forma indicar algo e explicar um pouco.
Vou dar um pequena introdução e te recomendar no final um conteúdo de apoio para que possa entender melhor, não só o que é a sobrescrita (Override) mas também outros conceitos da programação orientado a objetos.
Override de forma simples:
“reescrever um método, ou seja, podemos reescrever nas classes filhas métodos criados inicialmente na classe pai, os métodos que serão sobrepostos, diferentemente dos sobrecarregados, devem possuir o mesmo nome, tipo de retorno e quantidade de parâmetros do método inicial, porém o mesmo será implementado com especificações da classe atual, podendo adicionar um algo a mais ou não. “ DevMedia
é quando precisamos implementar na classe filha os métodos que foram definidos na classe pai!
Por exemplo, vamos supor que temos uma classe chamada “Animal” e que na classe “Animal”temos alguns métodos pré definidos como andar, comer, etc.
Se criar uma classe chamado “Cachorro” que estende a classe animal, a classe cachorro vai identificar que a classe que ela estende, tem alguns métodos que ela precisa “Herdar”, quando você implementa esses métodos na classe cachorro, isso por si só, já se caracteriza como uma sobrescrita, porém você pode ou não acrescentar algo a mais naquele método.
Recomendo que leia esse conteúdo: https://www.devmedia.com.br/sobrecarga-e-sobreposicao-de-metodos-em-orientacao-a-objetos/33066
Bom, Gustavo. Não sei se consegui te ajudar um pouco, é algo que também estudo e tentei ajudar com o que posso no momento, abraço.
Opa Gustavo, vou participar também, pois era uma dúvida minha, com um exemplo que me ajudou:
Imagina que você tenha a classe funcionario, que representa um funconario em um sistema em uma empresa. Ele tem o método chamado receberSalario().
Para cada função dentro de uma empresa, existe um salario diferente. Logo, um classe Gerente pode herdar de funcionario (com isso ela terá todos os atributos e metodos de funcionario, logo terá o método receberSalario) e com isso, sobreescrever.
Assim, sempre que a classe Gerente for chamada, o receberSalario que será chamado NÃO É da classe funcionario e sim da classe gerente.
É uma ideia de não expor o que ela faz. Tipo, não interessa o salario do Gerente (ou de qualquer classe), o importante é ele receberSalario.
Espero ter ajudado, continue com seus estudos =)