DEFINITELY understand the DIFFERENCE between ABSTRACT classes and INTERFACES-OOP

Поделиться
HTML-код
  • Опубликовано: 23 авг 2024
  • After all what is the difference between abstract classes and interfaces? When to use? Is it really enough to think that the difference is having or not coding?
    In this SUPER cool content, we bring in an EXTREMELY didactic way the differences between these important concepts of Object Oriented Programming (OOP).
    Below is the link that we recommend as a complement to this video:
    • Entenda DEFINITIVAMENT...
    Become a VIP at ArcH, follow me on my new Telegram channel:
    t.me/pisanidaarch
    ---
    Cross technological content, can be applied to java, rust, .net, c#, php, nodejs, javascript, go lang etc
    ArcH is a digital content producer that monthly helps thousands of professionals to become FERA in SYSTEM ARCHITECTURE, here are some of the topics we cover: architectural approaches, design standards, architecture and technology standards with efficiency, agility and quality, all to contribute to the professional development of the community of Solution Architects\Software and Systems in Brazil.
    Learn more about ArcH:
    ▶ archoffice.tech
    ---
    CONTACT:
    ▶ Whats: (11) 9.9696-8533
    ▶ Email: pisani@archoffice.tech
    #interface vs abstract
    abstract classes or interfaces
    #Interfaces or abstract classes
    abstractions pisani arch
    #arch abstractions
    #poo
    #object orientation
    #abstraction
    #pisani da arch
    #object orientation
    #abstract class
    software architecture
    #polymorphism

Комментарии • 102

  • @user-it8mz5vc3d
    @user-it8mz5vc3d 2 месяца назад +2

    Parabéns e muito obrigado pelo vídeo, você mostrou esses dois conceitos de um jeito que ainda não tinha visto, pelo menos não com a explicação que você deu. Obrigado

    • @pisanidaarch
      @pisanidaarch  2 месяца назад

      Fala ARQ, tudo 100%? Fico feliz que tenha gostado do vídeo e muito obrigado pela participação! 👊🏻

  • @eduardamichaelle
    @eduardamichaelle 3 месяца назад +3

    Ótimo vídeo! Explica muito bem, parabéns! E obrigada!

    • @pisanidaarch
      @pisanidaarch  3 месяца назад

      Muito obrigado pela participação e pelo feedback Eduarda 👊🏻👊🏻

  • @mauriciom8539
    @mauriciom8539 3 года назад +12

    queria ter um terço da usa motivação e um quarto do seu conhecimento (pois a paixão eu já tenho) pra melhorar meu dia a dia no trabalho. Mais um vídeo excelente professor

  • @rayssanunes1393
    @rayssanunes1393 5 месяцев назад +2

    Que energia surreal... Parabéns!!!

    • @pisanidaarch
      @pisanidaarch  5 месяцев назад

      Fala Rayssa! Tudo 100%? Muito obrigado pelo feedback 👊

  • @majuladarks.8708
    @majuladarks.8708 3 года назад +69

    *MINHAS ANOTAÇÕES, ESPERO QUE AJUDEM VOCÊS*
    Qual a diferença de classes abstract e interfaces?
    Interfaces são contratos, que define como serão as funções das seguintes classes que a implementam. As classes que implementam uma mesma Interface, não precisam ter algo em comum na regra de negócio.
    Classes abstratas define como suas filhas irão se comportar e quando são herdadas, as filhas pos-suem características hereditárias em comum. Assim como, na regra de negócio elas também são parecidas, como gerente e secretário, que são dois funcionários.
    Em suma essas são maneiras diferentes de tratar dependências do negócio. Classes que implementam de Interface não precisam estarem correlacionadas entre si. Já na abstração elas devem ter algo em comum dentro da regra de negócio.

    • @eugeniolopes8134
      @eugeniolopes8134 2 года назад +6

      Dentro de uma classe as funções são chamadas de métodos.
      Uma classe abstrata define métodos genéricos e as classes que a extende devem sobrescrever os métodos genéricos. Por exemplo a Classe abstrata SEDAN contém métodos e atributos genéricos e um outro exemplo, no entanto, com uma classe não-abstrata(uma classe que pode ser instânciada) chamada Hb20s e esta é uma especialização. Sendo uma especialização ela deve sobrescrever os métodos e atributos ou incluir mais se referindo à classe abstrata pois um Hb20S além de ser um SEDAN tem suas características particulares.

    • @eugeniolopes8134
      @eugeniolopes8134 2 года назад +6

      Uma interface é um contrato no qual onde ficam definidas as assinaturas ( nome do método, o tipo de dado que ele espera receber, o tipo de dado que ele retorna), os atributos (os nomes deles e o tipos)
      Tudo dentro de uma interface é público, ou seja, o Modificador de Acesso de tudo, implicitamente, é Public. A classe que a implementa, seja abstrata ou não-abstrata, deve implementar cada assinatura desta interface.

    • @jacyanelima2371
      @jacyanelima2371 Год назад

      ❤😂😂😂😂😂

  • @ellalogx
    @ellalogx 5 месяцев назад +1

    Estou desenvolvendo um projeto da faculdade e esse vídeo me ajudou bastante! Mais uma inscrita

    • @pisanidaarch
      @pisanidaarch  5 месяцев назад

      Fala ARQ! Tudo 100%? Muito obrigado pelo feedback 👊

  • @danielthoughtwriter
    @danielthoughtwriter Год назад +1

    muito obrigado excelente explicação e forma de comunicação

    • @pisanidaarch
      @pisanidaarch  Год назад +1

      Fala Daniel, sou eu quem agradeço pelo feedback 👊

  • @bemiyaz8079
    @bemiyaz8079 2 года назад +3

    Parabéns pelo vídeo professor!

  • @eugeniolopes8134
    @eugeniolopes8134 2 года назад +3

    Obrigado pelo conteúdo, Arch. Tem mais um inscrito !

  • @msandev
    @msandev 3 года назад

    Você logo vê que o conteúdo é bom quando tem mais de 690 joinhas e nenhum negativo. Muito boa a explicação. Primeira vez aqui no seu canal. Parabéns pelo vídeo. Já levou meu joinha, subscribe e ativei o sininho tbm. Abrassss. ;)

  • @homeromoura3277
    @homeromoura3277 4 года назад +3

    Eita explicação lúcida! Bom demais!

    • @pisanidaarch
      @pisanidaarch  4 года назад

      Muito obrigado pela força e participação de sempre meu amigo, de coração 👊

  • @stefans.h.buchenrode3494
    @stefans.h.buchenrode3494 4 года назад +2

    parabéns... conteúdo muito relevante....

    • @pisanidaarch
      @pisanidaarch  4 года назад

      Opa valeu de verdade, muito obrigado pelo feedback

  • @luizcesarmerjandepaula6067
    @luizcesarmerjandepaula6067 4 года назад +1

    Muito bom o vídeo!! Antes achava que Interface só poderia implementar métodos e não atributos. Valeu!

    • @pisanidaarch
      @pisanidaarch  4 года назад +1

      Fala Luiz, depende muito da linguagem de programação, em geral suporta sim, muito obrigado pela participação 👊

  • @andeton
    @andeton 3 года назад +3

    Nas novas versões do C#, podemos criar funções dentro das interfaces pra evitar ter uma interface e depois ter que mudar ou criar uma abstração só por causa de 1 função

    • @pisanidaarch
      @pisanidaarch  3 года назад +3

      Boa, contribuição top, valeu mesmo 👊🏻

  • @Vitor_lcar
    @Vitor_lcar 8 месяцев назад +1

    POO é essencial em programação

    • @pisanidaarch
      @pisanidaarch  8 месяцев назад

      Top, concordo 100%. Muito obrigado pela participação.

  • @robsonmonteiro6940
    @robsonmonteiro6940 2 года назад +1

    Muito bom conteudo! Obrigado e parabens!

  • @isacdeoliveira304
    @isacdeoliveira304 3 года назад +1

    Muito bom, consegui entender perfeitamente o conteúdo

  • @iagopetini2402
    @iagopetini2402 3 года назад +1

    Muito bom professor!! Obrigado viu

    • @pisanidaarch
      @pisanidaarch  3 года назад +1

      Opa não por isso, muito obrigado pelo feedback 👊🏻👊🏻👊🏻

  • @leocampelo8531
    @leocampelo8531 Год назад +1

    Muito bom!!!

  • @isadora-rk2nt
    @isadora-rk2nt 4 года назад +1

    Caraca, que aula 👏👏👏 já tive este problema também

    • @pisanidaarch
      @pisanidaarch  4 года назад

      Fala Isadora, muito obrigado pela força e pela participação de sempre.

  • @suleimandiveriosallum3756
    @suleimandiveriosallum3756 3 года назад +1

    Legal a sua aula amigo, vou acompanhar o canal, otima didatica! Parabens! Se puder trazer mais exemplos, tipo dois exemplos, mas um com tema diferente do outro acho q facilita a compreensao com perspectivas diferentes!

  • @fabriciosouza248
    @fabriciosouza248 Год назад +1

    No Java, a partir da versão 1.8 pode incluir métodos concretos dentro das intefaces

  • @reginaldoleobino2463
    @reginaldoleobino2463 3 года назад +1

    Perfeito este vídeo. Obrigado e se eu estiver errado, por favor me corrija.

  • @user-hz8qm9uk5c
    @user-hz8qm9uk5c Год назад +1

    bom de mais

  • @edu.paixao
    @edu.paixao 3 года назад +1

    *Ótima explicação!* _Eu estava usando o padrão Bridge de forma errada rsrsrs'_

    • @pisanidaarch
      @pisanidaarch  3 года назад +1

      Fala Eduardo, faz parte...eu também usei vários padrões da forma errada, o importante é sempre evoluirmos. Muito obrigado pela participação.

  • @reginaldoleobino2463
    @reginaldoleobino2463 3 года назад +22

    Só uma observação que eu gostaria de fazer em relação da Interface em linguagem Java é lá não é permitido colocar atributos mas sim métodos. E também, quando você faz uma implementação, todos esses métodos citados anteriormente, devem ser "exportados" para a classe que está implementando. Se eu estiver errado me corrija.

    • @pisanidaarch
      @pisanidaarch  3 года назад +8

      Boa, no vídeo eu tento dar ênfase no conceito, procuro ser agnóstico a tecnologia, mas, comentários como o seu enriquecem demais o conteúdo, muito obrigado pela participação 👊🏻

    • @majuladarks.8708
      @majuladarks.8708 3 года назад +2

      Ta erado. Você criar atributos desde que não sejam protected ou private.

    • @andreymonteirohl
      @andreymonteirohl 2 года назад +1

      C# tbm é dessa forma, só permite declaração de métodos

    • @guilhermemarques6713
      @guilhermemarques6713 Год назад +1

      @@andreymonteirohl lgc que nn, da pra implementad propriedades em uma interface ss, porem nao se pode implementar como public ou private somente o nome e o tipo da propriedade

    • @andreymonteirohl
      @andreymonteirohl Год назад

      @@guilhermemarques6713 sim realmente

  • @israelhudson
    @israelhudson Год назад

    Seria legal um exemplo prático.

  • @julianodamasiosbp
    @julianodamasiosbp 3 года назад

    Muito bom o vídeo, parabéns!

  • @battzalves3478
    @battzalves3478 Год назад +1

    Conteúdo top !

  • @N0151
    @N0151 2 года назад

    Explicação muito boa

  • @samuelsatanaprado7570
    @samuelsatanaprado7570 Год назад

    Excelente aula

  • @rafaelpereiradias2567
    @rafaelpereiradias2567 Год назад

    queria ter achado este canal antes! conteúdo bom

    • @pisanidaarch
      @pisanidaarch  Год назад

      Muito obrigado pelo feedback e por acompanhar o nosso conteúdo 👊🏻

  • @marciovelasco8835
    @marciovelasco8835 3 года назад +8

    Boa aula, muito boa didática. Mas interface ainda esta nebuloso o seu entendimento. Caberia exemplos reais, para o melhor entendimento.

    • @pisanidaarch
      @pisanidaarch  3 года назад +4

      Massa, anotado por aqui vamos fazer mais um com exemplos detalhados 👍

    • @mariacatroli9846
      @mariacatroli9846 10 месяцев назад

  • @mateusmeds
    @mateusmeds Год назад

    ótimo vídeo!

    • @pisanidaarch
      @pisanidaarch  Год назад

      Valeu demais, Mateus! Obrigada por assistir.

  • @joaopauloalmeida143
    @joaopauloalmeida143 2 года назад

    Que aula!

  • @canaldogrande1028
    @canaldogrande1028 2 года назад

    Like número 1000 , aula de qualidade

  • @ClaudenirFreitascf
    @ClaudenirFreitascf 3 года назад

    como enxerga a questão do "default" inserido no Java 8? Que permite inserir uma implementação dentro de uma interface.

  • @rickfontes5216
    @rickfontes5216 3 года назад

    Aula boa d+

  • @wilsonperepelecia4377
    @wilsonperepelecia4377 Год назад

    No caso de algumas linguagens, exemplo Java é possível herdar uma classe abstrata e implementar uma interface, pf me corrija se eu estiver errado

  • @mickaelprogramador9682
    @mickaelprogramador9682 Год назад +1

    EU ENTENDI!!!!!

    • @pisanidaarch
      @pisanidaarch  Год назад

      Fala Mickael, tudo 100%? Top demais! Fico feliz em saber que este conteúdo te ajudou de alguma forma. TMJ 👊

  • @drodrigues1982
    @drodrigues1982 3 года назад +1

    Parabéns pelo conteúdo! Uma dúvida: em classes (DTO) onde eu preciso garantir que todas as classes filhas possuam as mesmas propriedades da super classe, é melhor implementar uma interface do que usar uma herança de uma classe abstrata?

    • @andreymonteirohl
      @andreymonteirohl 2 года назад +1

      Nesse caso seria uma abstract. Porque ele é herdada, não implementada. Ou seja, tu vai criar uma classe base onde possui determinadas propriedades onde outras classes vão fazer uso. A interface seria caso de delegar funções, exemplo: IconnectDb que pode ser implementada na ConnectionDbMySql, ConnectionDbSqlServer, etc...

  • @eu.moraesdev
    @eu.moraesdev 3 года назад

    po legal cara vlw

  • @rockduds
    @rockduds 2 года назад

    No exemplo de herança, então a Classe Abstrata Pessoa herda o código da Classe A (Cliente) para que o código da classe A vá para a abstração (Classe Abstrata). Após esse processo o código já estará na Classe Abstrata e então a classe Fornecedor o herda da Classe Abstrata Pessoa, em vez de herdar da classe concreta Cliente diretamente. Entendi certo? Se houvessem mais classes elas também herdariam da Classe Abstrata assim como a Classe B (fornecedor)?

    • @pisanidaarch
      @pisanidaarch  2 года назад

      Opa tudo 100%, você fala quando temos mais de um nível de abstração? Caso positivo o melhor é você tentar usar como tipagem o nivel de abstração mais básico possível para tramitação de objetos entre classes ou métodos, mas no momento do processamento é necessário fazer o cast correto. Mais de um nível de abstração pode melhorar o reuso, minimizando erros ou necessidade de ajustes na ponta, mas toma cuidado para não exagerar e colocar complexidade desnecessária no seu código.

  • @fagnercarvalho681
    @fagnercarvalho681 Год назад +1

    Olá vim do futuro para falar que as interfaces em C# permitem colocar código... estranho? sim...

    • @pisanidaarch
      @pisanidaarch  Год назад

      Muito obrigado pela participação 👊🏻👊🏻👊🏻

  • @heckelcunha
    @heckelcunha 3 года назад

    Olá meu Arch... você tem algum cursos?

  • @alexlemos6207
    @alexlemos6207 3 года назад +6

    Senti a falta de exemplos práticos

    • @pisanidaarch
      @pisanidaarch  3 года назад +1

      Vamos trabalhar em um conteúdo com ele, valeu pelo feedback 👊

  • @prof.deniscaixeta
    @prof.deniscaixeta Год назад

    Quais são as implementações possíveis em classes abstratas? Métodos abstratos não tem implementação na classe abstrata, certo?

    • @pisanidaarch
      @pisanidaarch  Год назад

      Fala Prof Dênis, sim métodos e clara abstratas suportam codificações, para um posterior override ou até reuso de funções internas.
      Classes abstratas não suportam instanciação precisam ser especializadas, bele?

  • @pedroneto8461
    @pedroneto8461 Месяц назад

    Si o dinheiro nao importasse para nada na vida ninguem estaria aqui, e na verdade nem o youtube existiria.

  • @lglf77
    @lglf77 2 года назад +1

    Eu tenho uma perguntq. Sou iniciante. Queria fazer um teste CONTIGO. Já dá uma video aula. Se você responder de volta. Conto a história

    • @pisanidaarch
      @pisanidaarch  2 года назад

      Olá tudo 100%? Eu não entendi exatamente o seu ponto, mas respondido 👊🏻,

  • @adroaldoferreira978
    @adroaldoferreira978 Год назад

    Uma Interface não possui apenas métodos em Java?

  • @acas7581
    @acas7581 2 года назад

    Oi

  • @JairoHendrix
    @JairoHendrix 8 месяцев назад +1

    Vale pra Java ?

    • @pisanidaarch
      @pisanidaarch  8 месяцев назад

      Algumas plataformas como JAVA podem ter particularidades que aceitem implementações em interfaces.
      Mas o conceito é universal para orientação a objetos

  • @VeronicaSantos
    @VeronicaSantos 4 года назад +1

    Ficou show!
    Polimorfismo é possível somente em caso de classes abstratas, correto?

    • @pisanidaarch
      @pisanidaarch  4 года назад

      Olá Verônica, você pode até usar interfaces para definir as diferentes assinaturas, mas implementar o conceito só com abstrações e herança mesmo (de classes concretas também)

  • @r.m.2000
    @r.m.2000 Год назад

    mas nao falam que interface so implementa metodos? vc no video diz que pode ter atributos e propriedades na interface. nao entendi. pq no c# isso nao é possivel, apenas assinaturas de metodos. pelo menos em outro curso que vi era assim. so se alguma versao mais nova do c# mudou isso.

    • @pisanidaarch
      @pisanidaarch  Год назад +1

      Você está certo, falha nossa, obrigado pela contribuição 👊🏻

  • @srmariodamasceno
    @srmariodamasceno 2 года назад

    Cara, tomei um susto com o início do vídeo.. já começa na energia total kkk

  • @gabrielfernandes5460
    @gabrielfernandes5460 3 года назад +1

    Professor, tu é pica!

    • @pisanidaarch
      @pisanidaarch  3 года назад +1

      Que nada, sou só um aprendiz que curte muito dividir o que aprende, muito obrigado pelo feedback.

  • @Gvfm1596
    @Gvfm1596 4 года назад +1

    O negocio e quando vc usa dart e não tem interfaces , so classes abstratas :/

    • @pisanidaarch
      @pisanidaarch  4 года назад

      Hehehe, mas neste caso é como o TS, só um superset, no fundo, no fundo é um JS que em essência não suporta O.O. (só com muita insistência), mas não foi feito para isso 😅. Muito obrigado pela participação 👊

  • @Alfredornbrp
    @Alfredornbrp Год назад +1

    Seu conteúdo é bom mas esse som em sua abertura é horrível...

    • @pisanidaarch
      @pisanidaarch  Год назад

      Fala meu brother, estamos melhorando sempre graças a feeds. Muito obrigado pela contribuição 👊

  • @acas7581
    @acas7581 2 года назад

    😡

    • @pisanidaarch
      @pisanidaarch  2 года назад

      Oi Thaís, tudo 100% desculpe nem sempre consigo responder rápido, fica o convite de entrar na comunidade do ArcHOne por lá conseguimos ser mais rápidos 👊🏻👊🏻👊🏻
      one.archoffice.tech

  • @santosndzekos8816
    @santosndzekos8816 Год назад

    Usar interfaces e perder tempo

  • @gilmarcossantos3951
    @gilmarcossantos3951 3 года назад

    Muito bom!