C# Abstract vs Interface | Abstract ve Interface Farkı Nedir?

Поділитися
Вставка
  • Опубліковано 31 гру 2021
  • Bu zamana kadar teknik mülakatlarda mutlaka karşınıza çıkmıştır Abstract ve Interface arasındaki fark nedir diye. Bu soruya bu videoda detaylıca cevap vermeye çalıştım.
    #abstract #interface #difference
    #blazor #docker #dotnet
    Kanala Abone Olmayı Unutmayın!
    To Subscribe: bit.ly/3kvj2vw
    Github: github.com/salihcantekin
    Discord: / discord
    Üyelik ayrıcalıkları için: / @techbuddytr
  • Наука та технологія

КОМЕНТАРІ • 88

  • @EmreQQ
    @EmreQQ 11 місяців тому +1

    Abstractlar anladığım kadarıyla ortaklık için kullanıyor ve yardımcı metot gibi çalışması amaçlanıyor. Mesela bir array oluşturup, arrayName.length metodu çağırmak gibi.. Bu işlemin, array oluşturulmadan yapılmaması içinse soyutluyoruz yani abstract ediyoruz. Haliyle new instance üretilmiyor çünkü en baştaki tasarlanış amacı yardımcı metot olmaktı yeni bir nesne olmak değil.

  • @AtesHuseyin
    @AtesHuseyin 26 днів тому +1

    Çok sağlam anlatım olmuş. Özellikle interface'i abstracc classa bağlamak müthişti. Kesinlikle kullanırım bu yöntemi

  •  2 роки тому +7

    Udemy'de en "benim" diyen hoca böyle sadelikte anlatamamıştır. Biliyor olsanız bile izlemenizi tavsiye ederim

  • @AA-ed7hd
    @AA-ed7hd 2 місяці тому +1

    çok faydalı bir anlatım hocam

  • @semihcelikol7193
    @semihcelikol7193 2 роки тому +2

    Salih abi ağzına, ellerine sağlık çok temiz anlatıyorsun. Teşekkür ederim

  • @muratdrg5021
    @muratdrg5021 2 роки тому +2

    Güzel anlatımınız ve emeğiniz için teşekürler

  • @buraksvs
    @buraksvs 2 роки тому +8

    anlatımlarınız çok değerli . özellikle junior arkadaşların kendini daha ileri seviyeye taşıyabilmesi için ve sürekli duyduğu kavramların kafalarına rahat oturması açısından çok faydalı içerikler. emeğine sağlık.

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +1

      Çok teşekkür ederim. Umarım faydalı oluyordur her seviye için.

  • @mesutdemirci7933
    @mesutdemirci7933 Рік тому +1

    İçerikleriniz çok kaliteli, emekleriniz için teşekkürler.

  • @suleyman8843
    @suleyman8843 2 роки тому

    Hocam videolarınız için çok teşekkür ederiz. İlerleyen zamanlarda Rabbit MQ, Apache kafka, Redis vs vs gibi teknolojilere değinebileceğiniz örnekler yapabileceğiniz video gelirse çok seviniriz. İzlerken hem eğlendiğim hem de öğrendiğim nadir kanallardan birisiniz çok selamlar

  • @atakankuloglu4877
    @atakankuloglu4877 Рік тому +1

    Çok temiz anlatmışsınız. Teşekkürler.

  • @melihdincer5069
    @melihdincer5069 6 місяців тому +1

    Videodan istifade ettim teşekkür ederim, güzel anlatım.

  • @elifsu7033
    @elifsu7033 6 місяців тому

    Teşekkür ederim hocam. Gerçekten çok güzel anlatıyorsunuz.

  • @enesemreislek4264
    @enesemreislek4264 Рік тому +1

    dügün ve güzel anlatım için teşekkürler başarılar dilerim

  • @CemilArancak
    @CemilArancak 2 роки тому +1

    Detaylı bir anlatım olmuş teşekkürler.

  • @faruksirkinti6168
    @faruksirkinti6168 6 місяців тому +1

    teşekkürler hocam severek izliyoruz

  • @potisseslikitap7605
    @potisseslikitap7605 2 роки тому +2

    Çok açıklayıcı olmuş elinize sağlık.

  • @tunaroll3957
    @tunaroll3957 2 роки тому +9

    Mukemmel bir tutorial olmus, elinize saglik! Gercek zamanli kod yazmaniz cok faydali olmus anlatirken; insan beyni aynalama sayesinde cok daha iyi kavriyor konuyu :)

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +3

      Çok teşekkür ederimm. Umarım faydalı olmuştur.

  • @ysrtpk
    @ysrtpk 2 роки тому +2

    Teşekkürler başkan

  • @a.t10
    @a.t10 Рік тому +1

    harika bir anlatım. 10/10

  • @elyys5854
    @elyys5854 9 місяців тому +3

    Harika bir anlatım, emeğinize sağlık.

  • @orxanmemmedli7126
    @orxanmemmedli7126 11 місяців тому +1

    Mükemmel anlatım, hocam. Var olun.

  • @ufukdemir2804
    @ufukdemir2804 2 роки тому +2

    Teşekkürler güzel bir video olmuş.

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +1

      Teşekkür ederim. İyi Seyirler :)

  • @GiraboluSatinAlcom
    @GiraboluSatinAlcom 9 місяців тому +1

    İnanılmaz bir anlatım çok sade ve çok anlaşılır...
    emeginize saglık...

    • @TechBuddyTR
      @TechBuddyTR  9 місяців тому

      Çok teşekkür ederim 👍

  • @motogezgin2085
    @motogezgin2085 Рік тому +1

    çok temiz anlatım.

  • @mehmetfatihgok6665
    @mehmetfatihgok6665 Рік тому +1

    Teşekkürler.

  • @yusufkaraaslan2888
    @yusufkaraaslan2888 10 місяців тому +1

    Çok teşekkürler açık ve net bir video olmuş hocam 🌹

  • @AhmedHalil1905
    @AhmedHalil1905 Рік тому +1

    Emeğine sağlık abi 😊

  • @alperaslan.
    @alperaslan. 11 місяців тому

    Tertemiz bir anlatım teşekkürler :)

  • @rothbrook
    @rothbrook Рік тому +1

    Eline ağzına sağlık hocam harika anlatıyorsun..

  • @oktay_yoruk
    @oktay_yoruk Рік тому +1

    Mükemmel anlatım, ağzına sağlık

  • @justetk
    @justetk Рік тому +1

    Çok faydalı video. Azerbeycandan Selamlar!

  • @Alpharabius99
    @Alpharabius99 Рік тому

    Videoda gayet güzel açıklanmış, hala aklında soru işareti olan arkadaşlara cheezy code adlı kanalın aynı isimli videosuna bakmalarını öneririm.

  • @murad-dov
    @murad-dov 2 роки тому

    Ellerinize sağlık

  • @BarbarosYurttagul
    @BarbarosYurttagul 2 роки тому +3

    Thread vs Process soruyorlar. Devamında Multithreading..

  • @atamankurutmaz5458
    @atamankurutmaz5458 Рік тому

    IRideable ve IFlyable interfaceleri IVehicle interface'inden kalıtım alması gerekmiyor mu? Sonuç olarak binilebilen bir şeyde araçtır uçabilen bir şeyde. Car sınıfı içinde sürülebilen bir interface yaratıp onu da IVehicle interface'inden kalıtım aldırsak olmaz mı?

  • @emreylmaz2806
    @emreylmaz2806 Рік тому +1

    Çok acıklayıcı olmus hocam

  • @mehmettahiryldrm4433
    @mehmettahiryldrm4433 2 роки тому +7

    SOLID prensipleri hakkında uygulamalı bir anlatım video'su güzel olabilir. Bilmeyen veya daha önce kullanmamış kişilerin teorik bilgiden okuyup nerelerde kullanılacağını tam anlaması ve içselleştirmesi kolay olmuyor.

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +3

      SOLID gerçekten de okunarak özümsenmeyecek konuların başında geliyor olabilir. Anlatması da hayli zor olacaktır ama listeye ekleyeyim bunu da.

    • @mehmettahiryldrm4433
      @mehmettahiryldrm4433 2 роки тому +2

      @@TechBuddyTR Teşekkür ederim

  • @teknolojiuzmaniburada
    @teknolojiuzmaniburada 2 роки тому +1

    Yine muhteşem olmuş. Ellerinize emeğinize sağlık. Mülakatlarda ACID terimlerini de soruyorlar. ACID elemanlarını da pratik yaparak uygulamalı anlatabilir misiniz? Transaction ile bazen başım belada oluyor da :)

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +2

      Teşekkür ederim. Kanalı takip edenlerin seviyelerinin çeşitliliği sevindiriyor beni. Hem advance konularda talep oluyor hem de intermediate konularında.
      ACID konusu biraz teorik bir konu ama bunu da listeye ekleyip uygulamalı olarak anlatmaya çalışayım.

    • @teknolojiuzmaniburada
      @teknolojiuzmaniburada 2 роки тому +1

      @@TechBuddyTR çok teşekkür ederimm 😊🙏 ACID kavramlarını ne şekilde uygulayabileceğim konusunda muallakta kaldığım oluyor bir çok kez. O nedenle sabırsızlıkla bekliyor olacağım videoyu 😊

  • @kilicarslan5976
    @kilicarslan5976 2 роки тому +1

    çok açıklayıcı anlatım teşekkürler. yalnız şu konunun ortasında gelen abone ol yazısı dikkat dağıtıcı oluyor çünkü pür dikkat istiyor konular

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +1

      :) Videoyu bir daha izlemek için bir bahane olur belki

    • @kilicarslan5976
      @kilicarslan5976 2 роки тому

      @@TechBuddyTR aynen izlicem şimdi 🙂

  • @qokhan3463
    @qokhan3463 2 роки тому +1

    Salih bey, bu güzel video için çok teşekkürler. Bu arada , GenerateSql methodunu abstract class içerisinde virtual tanımlayıp diğer classlarda override etseydik saçma mı olurdu ?

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +1

      Hayır saçma olmazdı. Eğer bir metodun, o class ı inherit eden tüm class'larda kullanılacağından eminsek virtual ekliyoruz. Eğer zorunlu olarak kullanılacaksa abstract ekliyoruz ama eğer bir zorunluluk yoksa eklemiyoruz :)

  • @mechul0
    @mechul0 10 місяців тому +1

    Harika bir anlatım, ayakta alkışlıyorum hocam :)
    Hocam bir de c++ ile ilgili bu tarz videolar yapmanız mümkün mü?

    • @TechBuddyTR
      @TechBuddyTR  10 місяців тому +1

      C++ bilsem dükkan senin :)

    • @mechul0
      @mechul0 10 місяців тому

      @@TechBuddyTR Canınız sağolsun hocam ne diyelim :)

  • @apoleyta9760
    @apoleyta9760 2 роки тому +2

    Benim anlamadığım kısım şu ; Abstract classlar interfacelerin gelişmiş halleri gibi. Yani ikisinde de imza fieldlar ve metotlar oluşturabiliyoruz. Ama ek olarak abstract classlarda ek olarak fazladan işlemler daha yapabiliyoruz. Ben neden interfacelere ihtiyaç duyayım ? Daha gelişmiş hali olan abstract classlar varken neden daha az özelleşmiş olan interfaceleri kullanayım ?

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +2

      Bir kere her şeyden önce C# da multiple inheritence yok. Yani bir class en fazla 1 tane class'tan türeyebilir. Ama bunun yanında istediğimiz kadar interface kulanabiliriz o class'ı inherit etmek için. Bunun dışında Abstract class bile olsa ana class'taki constructor ları etkileyebilir, eğer abstract class kendi içinde constructor varsa. Ancak Interface ler sadece imzalar olduğu için herhangi bir instance oluşturma olayı olmuyor. Yani class'lar create edilmek zorunda ve create edilirken constructor lar etkili oluyor, interface lerin ise böyle bir durumu yok. Kullanılan yapıya göre örnekler çeşitlendirilebilir.

    • @apoleyta9760
      @apoleyta9760 2 роки тому +1

      @@TechBuddyTR Anladım. Teşekkür ederim

  • @ismailayyildizz
    @ismailayyildizz 2 роки тому +2

    Hocam merhaba network programlama socket kullanimi iasyncresult ile ilgili bir video gelebilir mi?

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +1

      Network programlama her ne kadar benzer teknikler olsa da farklı bir konu. Network hakkında video çekmeyi henüz planlamadım ama talep sayısına göre düşünebilirim

  • @necmettinayvaz
    @necmettinayvaz Рік тому +1

    Merhabalar hocam. Emeklerinize sağlık. Redis konusunda ve .net core da kullanımı hakkında da detaylı bir video gelebilir mi?

    • @TechBuddyTR
      @TechBuddyTR  Рік тому

      Redis ile ilgili detaylı bir videomuz yok ancak MicroService serisinde BasketService için kullanmıştık .Net Core ile birlikte. O video belki yardımcı olabilir.

  • @ahmet9424
    @ahmet9424 2 роки тому +1

    Hocam emeğiniz için teşekkürler. Faydalı bir içerik olmuş. Go ve stop metotlarını abstract class(BaseVehicle) içine taşıdıktan sonra IVehicle classı ile mantıken pek bir işimiz kalmıyor gibi geliyor. Yani IVehicle aslında, absctract class üzerinden de kaldırsak, yine alt sınıflar bu go ve stop metotlarını kullanabiliyorlar. Interface'i o abstract classa implement vermemizin başka özel bir sebebi var mı ?

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +1

      Dediğiniz gibi baseclass ı kullanınca Ivehicle a olan bağımlılık ortadan kalkıyor ama IVecihle interface inin olayı, sahip olduğumuz metodları bildirmek ya, bunu illa ki kullanacağımız class lara bildirmek zorunda değil. Baseclass larda da kullanabiliriz o yüzden kaldırmadım.

    • @ahmet9424
      @ahmet9424 2 роки тому +1

      Cevap için teşekkürler. Uygulamalarda hep bu şekilde görüyordum. Abstract classa neden interface implementasyonu yapılıyor diye. Buna best practice gözü ile bakabilirmiyiz?

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому

      Bakabiliriz. Dependency Injection ile birlikte Interface'lerin kullanımları da günden güne artmaya başlıyor ve önemi daha net anlaşılıyor :-)

  • @ucamayanejderya
    @ucamayanejderya Рік тому +1

    Salih hocam dependency injection yaparken interface'lerle yapiyorum ama düşününce abstractlarla da yapılabilir arasindaki fark nedir ne zaman hangisini tercih etmeliyim

    • @TechBuddyTR
      @TechBuddyTR  Рік тому

      teknik olarak bunun önünde bir engel yok. BaseClass da kullanılabilir elbette ama interface'lerin olayı şöyle; bir class birden fazla interface'den türetilebiliyorken sadece bir tane baseClass tan türetilebilir. Biz de bir class'ımızı birden fazla interface'den türetip, bunlardan birini inject etmek isteyebiliriz. Bu durumda interface'leri kullanmak zorunda kalıyoruz mesela.

    • @ucamayanejderya
      @ucamayanejderya Рік тому +1

      Teşekkürler hocam

  • @tarkbugra9435
    @tarkbugra9435 2 роки тому +1

    Hocam BaseVehicle sınıfında abstract yazmayıncada main de car ı çağırdığım yada plane yi çağırdığım zaman gene de içindeki metodlara erişebiliriyorum bu nasıl oluyor ? normal classtan farkı ne oluyor

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +1

      Abstract yazmayınca da dışarıdan ulaşabiliriz. Abstract ifadesini class'a ekleyince o class'ın kendisinden yeni bir instance yaratamıyoruz sadece.

    • @tarkbugra9435
      @tarkbugra9435 2 роки тому +1

      @@TechBuddyTR abstract classları newleyemiyoruz o zaman anladım hocam teşekkürler

  • @erkanyaprak2390
    @erkanyaprak2390 Рік тому

    26:50 BaseVehicle sınıfını IVehicle' dan türetip diğer tüm araçlardan IVehicle interface' ini kaldırmak doğru yöntem değil mi?

  • @atillaalagoz4100
    @atillaalagoz4100 Рік тому

    🍀🍀🍀🍀

  • @tavhaneful
    @tavhaneful 2 місяці тому

    Interface ile abstract class farkını anlatırken, interface'de arabayı, abstract da postgresql'i anlatmak mantıksız olmuş. İkisinde de net bir şekilde araba üzerinden örnek vermeniz gerekirdi. Kafa karıştırmış.

  • @MostaphaQamar
    @MostaphaQamar 6 місяців тому

    ekran siyah ve küçük ekran gözlere zarar

  • @Berat-Ozmen
    @Berat-Ozmen 2 роки тому +3

    İçerikleriniz çok kaliteli, emekleriniz için teşekkürler.

    • @TechBuddyTR
      @TechBuddyTR  2 роки тому +2

      Çok teşekkür ederim. Umarım faydalı oluyordur.