Quando eu digo que um metodo é override o que eu estou querendo dizer?Em CSharp
Quem souber pode me explicar e me dar exemplos?
Gabriel Queiroz
Curtidas 0
Respostas
Jaedson Serafim
25/06/2015
Quer dizer que você está reescrevendo o método original a partir do zero, por exemplo:
Esse recurso é muito interessante, mas eu não uso muito ele, já que se eu vou modificar o método original, porque eu o criaria? Só para usar recursos?
string a;
public virtual void teste ()
{
a = "Teste original";
}
public override void teste ()
{
a = "Novo teste";
}
// Se você chamar teste() a será igual a "Novo teste", pois você alterou o método original.
Esse recurso é muito interessante, mas eu não uso muito ele, já que se eu vou modificar o método original, porque eu o criaria? Só para usar recursos?
GOSTEI 0
Fernanda Acacia
25/06/2015
Boa noite Gabriel, uma boa video aula pode te ajudar.
[url]https://www.youtube.com/watch?v=gvOsmf_DGVA[/url]
[url]https://www.youtube.com/watch?v=gvOsmf_DGVA[/url]
GOSTEI 0
Gabriel Queiroz
25/06/2015
E pra du poder sobsecrever o método que vou sobsecrever precisa ser virtual?
GOSTEI 0
Gabriel Queiroz
25/06/2015
Acho que nao funciona dessa forma nao...Jadeson
[img]http://arquivo.devmedia.com.br/forum/imagem/431946-20150626-090632.png[/img]
[img]http://arquivo.devmedia.com.br/forum/imagem/431946-20150626-090632.png[/img]
GOSTEI 0
Jaedson Serafim
25/06/2015
Realmente, tinha esquecido esse detalhe, o código fica assim:
// O método original deve estar em uma classe abstrata.
public abstract class Class1
{
public virtual void teste(string a)
{
a = "Teste original";
}
}
// E a classe com o novo método deve herdar a classe abstrata.
class MyClass : Class1
{
public override void teste(string a)
{
a = "Novo teste";
}
}
GOSTEI 0
Gabriel Queiroz
25/06/2015
Não pode ser na mesma classe
GOSTEI 0
Gabriel Queiroz
25/06/2015
Voce falou que nunca usa mas se usa bastnate sim principalmente pra testes
exemplo tenho minha classe pai
exemplo tenho minha classe pai
public class Pai
{
public virtual string MetodoPai()
{
return "a";
}
}
//Porem as vezes quero que cada um de uma classe passa a valer um valor , porem no mesmo metodo
public class Filho
{
public override string MetodoFilho
{
return "b";
}
}
//Exemplo em minha classe principal
abstract class Principal
{
Pai ClasseDoPai = new ClassePai();
Filho ClasseDoFilho = nre ClasseFilho();
public static void Main()
{
//Assim quando eu chamar exemplo posso chamar os dois independente se sobscrevi este metodo ou nao
}
}
GOSTEI 0
Gabriel Queiroz
25/06/2015
Cada um valendo um valor
GOSTEI 0