‫Nos próximos vídeos, você aprenderá sobre interfaces e elas são muito
‫importantes porque realmente estendem a funcionalidade da programação orientada a objetos e de classes.
‫Então, o que é uma interface?
‫Bem, pense em interfaces como contratos onde uma classe que implementa uma interface concorda em fornecer implementações para
‫todos os objetos definidos por aquela interface.
‫Isso significa que uma interface conterá os termos do contrato, métodos e propriedades.
‫Mas como os implementamos depende da classe que implementa a interface.
‫Enquanto esses métodos de interface forem implementados em nossa classe, a interface permanecerá feliz.
‫Portanto, as interfaces não podem conter nenhuma implementação que seja importante.
‫Portanto, seus nomes geralmente são prefixados com o olho para distingui-los de outros objetos em dó sustenido.
‫Criamos interfaces usando a palavra-chave interface.
‫Agora vamos ver como podemos fazer isso na prática.
‫Tudo bem, então estamos de volta ao Visual Studio, então uma das funcionalidades mais usadas em
‫nossas classes em C sustenido é a comparação com instâncias de uma classe, isso é feito usando o método equals.
‫Isso fará uma comparação para ver se a referência a ambas as classes é a mesma.
‫No entanto, queremos compará-los e ver se eles são iguais com base em algum outro campo, para que
‫possamos fazer isso implementando uma interface chamada I Equatable.
‫Portanto, em nosso caso, temos uma classe chamada ticket e ela define uma propriedade chamada duração em horas.
‫Portanto, vamos prosseguir e criar esta classe.
‫Muito rápido aqui eu tenho uma nova classe e na verdade eu posso ir aqui ou usar o controle de atalho
‫K e C, e vou chamar esse tíquete.
‫Então esse tíquete, como eu disse, só tem uma propriedade e um construtor.
‫Então, vamos colocá-los aqui.
‫Então esse imóvel existe para armazenar variação do ticket e do nosso.
‫E então temos o construtor aqui.
‫E agora vamos seguir em frente e implementar a interface igualável, portanto, usamos algo semelhante ao que fizemos
‫ao usar a herança, usamos os dois pontos e, em seguida, a interface que queremos usar.
‫E você vê que há um monte deles.
‫E o que eu quero usar vai ser o igual.
‫Agora você precisa definir quais tipos de objetos deseja comparar.
‫Então, aqui eu quero comparar os ingressos entre si.
‫É por isso que preciso adicionar uma palavra-chave de tíquete.
‫Agora você notará que o Visual Studio não está muito feliz porque diz que define um método generalizado para um tipo de
‫valor de implementos de classe para criar um método específico.
‫Mas então o problema que temos aqui é que o ticket não implementa membros da interface.
‫Tíquete igualável é igual a segredo.
‫Podemos facilmente consertar isso apenas indo em frente e implementando isso, então poderíamos ter usado todos os membros
‫para implementá-los explicitamente ou podemos apenas fazer isso manualmente.
‫Vamos fazer isso bem rápido.
‫Então, basicamente, quero retornar um booleano que verificará se o tíquete pelo qual estou passando, que
‫será o outro tíquete, será igual ao tíquete.
‫É isso que chama esse método.
‫OK, então o tíquete.
‫Que criamos a partir disso, comparamos com outro ticket e depois queremos comparar as horas de duração.
‫Portanto, se eles tiverem a mesma duração, assumiremos que são o mesmo tíquete.
‫OK, então aqui podemos simplesmente prosseguir e retornar a comparação dessa duração em horas com a outra
‫duração e horas.
‫Basicamente, estamos dizendo que esse ingresso tem uma duração e horas e o outro ingresso também é desse ingresso.
‫Portanto, tem uma duração em horas e estamos comparando os dois entre si.
‫E nessa comparação, esse sinal de igual duplo basicamente retornará.
‫Verdadeiro ou falso?
‫OK, então este é o operador de touro à esquerda e à direita.
‫Então, o que ele faz é comparar o que resta a ele com o que é certo a ele.
‫E se eles forem iguais, então ele retornará verdadeiro.
‫Caso contrário, ele retornará falso.
‫Basicamente, dizer que esse método igual a retornará verdadeiro se o tíquete que chama o método igual a tiver a
‫mesma duração e horas que o tíquete com o qual o comparamos, então retorna.
‫Verdadeiro, se não, retorna falso.
‫OK, então vamos passar aos nossos programas.
‫sim.
‫E realmente use isso.
‫Então, vamos criar dois tickets.
‫Um será T um e será uma nova passagem e terá duração e horas de dez.
‫E então vamos copiar isso e criar um ticket dois, que também terá dez horas e agora podemos
‫compará-los.
‫Então, aqui, vamos usar a linha direita de controle para apenas exibir T dois pontos iguais e comparar T um com eles.
‫Então você pode basicamente comparar nosso ingresso com o nosso ingresso e compará-lo usando o método de igualdade.
‫Agora vamos executar isso bem rápido.
‫E você verá que diz verdadeiro, e esse geralmente não é o caso para o método igual, porque se
‫você comparar os objetos usando um método igual normal, por assim dizer.
‫Então, se não formos implementar isso, vamos nos livrar disso aqui por um segundo.
‫Então, vamos comentar tudo isso e comparar o com você.
‫Veja, o método ainda está lá.
‫Este igual ainda funciona porque igual é um método que existe em geral, e você vê agora que diz falso
‫porque igual é um método que está dentro da classe de objeto.
‫E a classe de objeto sempre tem esse método igual porque cada classe herda de objeto.
‫Mas agora o que estamos fazendo é implementando nosso próprio método equals usando a interface igualável.
‫Portanto, estamos usando uma interface específica que nos permite comparar à nossa maneira, por assim dizer, e implementar nosso próprio
‫código.
‫Portanto, agora, se compararmos os dois, não estamos comparando se o objeto é exatamente o mesmo com o qual o estamos
‫comparando.
‫Mas se no nosso caso, o horário no nosso é o mesmo.
‫Portanto, a duração e a nossa são iguais, e então ela voltará.
‫Verdade.
‫Portanto, se a hora e as horas não forem iguais, digamos que sejam seis, ele retornará falso porque a
‫duração não é a mesma para os dois tickets que estamos comparando.
‫Portanto, este foi apenas um exemplo usando uma interface simples que existe.
‫E como você viu, existem muitas interfaces que existem automaticamente ao criar um projeto especial.
‫Mas veremos como criar nossas próprias interfaces e usá-las no próximo vídeo.
‫Então, vejo você lá.