1
resposta

Não Podemos criar heranças usando classes com o mesmo nome de classes já existentes dentro do .NET ?

Durante a aula 4 / ex 2 criamos nossa própria exceção e sabemos que toda exceção deriva da classe Exception. Até ai tudo bem, mas passando um pouco adiante temos que :

Criamos a classe SaldoInsuficienteException e aplicamos herança sobre a classe Exception ( Que não criamos, e sim já é predefinida ) ...

    public class SaldoInsuficienteException : Exception

criei uma situação hipotética em que eu não tivesse ideia da existência desta classe Exception, e criasse a minha própria classe com o mesmo nome para usa-la como herança para outra classe qualquer para saber o que iria acontecer, e não foi possível. Então a minha dúvida é a seguinte:

Não Podemos criar heranças usando classes com o mesmo nome de classes já existentes dentro do .NET ?

1 resposta

Olá Chrystian, tudo bem?

Isso é possível porque fazemos o uso de namespaces. E utilizando o exemplo que você deu, podemos criar nossa própria classe Exception que herde de System.Exception. Note que as duas classes fazem parte de namespaces diferentes.

A classe nova faz parte do namespace Teste (no meu caso), enquanto a outra deve ficar explicito que se trata da classe que faz parte do namespace System:

namespace Teste
{    
    public class Exception : System.Exception
    {
    }
} 

Esse código acima é válido porque essa classe nova seria Teste.Exception e para o compilador, essa é uma classe completamente diferente de System.Exception.

Espero ter ajudado!