‫Son videoda kalıtım ve kalıtımın temelleri hakkında bilgi edindiniz.
‫Ancak şimdi biraz daha derine inelim ve miras söz konusu olduğunda alakalı olacak birkaç anahtar
‫kelimeye bakalım.
‫İnceleyeceklerimiz virtual ve override anahtar sözcükleri olacak.
‫Şimdi merak edebilirsiniz, ekranda neden hayvanlarımız var?
‫Dennis neden bir sürü hayvan resmi gösteriyor?
‫Mesele şu ki, bir hayvan sınıfı uygulayacağız, bu da bize miras almamıza izin verecek ve
‫hayvan, birkaç beceriye sahip olan ana sınıf olacak, örneğin, bir hayvan ne yapabilir?
‫Ses çıkarabilir, yemek yiyebilir ve oynayabilir.
‫En azından hayvan sınıfının bunu yapmasına izin vereceğiz.
‫Ve tabii ki bir hayvan çok daha fazlasını yapabilir.
‫Ona Yaş Özelliği adı gibi birkaç özellik vereceğiz, sonra örneğin açsa, yani sadece
‫açsa yiyecek, aksi takdirde yemeyecektir.
‫Yani bir hayvan sınıfı yaratma fikri gerçekten de bu.
‫Ve şimdi, elbette, devam edebilir ve bu sınıfı zaten kendiniz uygulayabilirsiniz.
‫Ve sonra sadece aynı yöntemleri ve aynı özellikleri kullanmak için değil, aynı zamanda bunları
‫geçersiz kılmak için kalıtımı kullanacağız, temel olarak, tamam, köpek olan bir hayvanın çıkardığı ses, örneğin bir
‫maymunun veya bir maymunun veya bir zürafanın çıkardığı sesten farklı olacaktır.
‫Yani temelde uygulayacağımız şey bu.
‫Ve bunu yaparak, virtual ve override anahtar kelimesi gibi farklı anahtar kelimeleri öğreneceğiz.
‫Şimdi devam edelim ve bunun için yeni bir proje oluşturalım.
‫Bir konsol uygulaması kullanacağım.
‫Ben buna sanal geçersiz kılma demosu diyeceğim.
‫Tamam.
‫Size küçük bir meydan okuma olarak, bunu kendiniz denemek istiyorsanız, lütfen hayvan olarak adlandırılacak
‫ve özelliklere sahip olacak küçük bir sınıf yazın.
‫İsim yaşı aç.
‫Sonra elbette bir kurucu, sonra ses çıkarma, yeme ve çalma olarak adlandırılan bir yöntem, eğer isterseniz bunların hepsini uygulayın,
‫çünkü bu size tüm bu farklı yöntemleri oluşturmak için biraz pratik
‫yapmanızı sağlayacaktır.
‫Daha sonra bunları kalıtımda düzgün bir şekilde kullanabilmek için nasıl biraz değiştireceğimizi göreceğiz.
‫Pekâlâ, umarım denemişsinizdir.
‫Bu nedenle, elbette yeni bir sınıf oluşturmak için control k c'yi kullanabiliriz ve ben buna animal adını
‫vereceğim.
‫Ve şimdi bu hayvan sınıfı, dediğim gibi, birkaç özelliğe sahip olacak.
‫Yani name özelliği, H özelliği ve is hungry özelliği ve ardından tüm bu özellikleri kullanan
‫basit bir kurucu.
‫Sadece get set kullandığımızı görebilirsiniz.
‫Bu arada, gerçekten hızlı bir şekilde bir özellik oluşturmak istiyorsanız, özelliğe çift dokunun ve ardından
‫türü girin, örneğin dize ve ardından buraya, örneğin ad.
‫Böylece, gereğinden fazla yazmak zorunda kalmadan çok hızlı bir şekilde yaparsınız.
‫Tamam.
‫Yani bu, burada H ve is hungry adlarıyla kurucumuz olacak.
‫Gördüğünüz gibi hungry, hayvanı oluşturduktan sonra ayarlayacağımız bir şey değil,
‫ancak varsayılan olarak başlangıçta true olarak ayarlayacağız.
‫Bu yüzden sadece aç varsayılanına ayarlıyorum.
‫Tamam.
‫Şimdi ses çıkarma olarak adlandırılacak bir metoda sahip olmak istediğimi söyledim.
‫Şimdi bu yönteme bakalım.
‫Bu yüzden boş bir sanal yöntem kullanıyorum, diğer sınıfların geçersiz kılabilmesi için ses çıkarıyorum.
‫Bu yöntemi sanal hale getiriyorum, böylece animal'dan miras alan sınıflar tarafından geçersiz kılınabilir.
‫Ve bunu nasıl yapacağımızı daha sonra göreceğiz çünkü bir hayvanın çıkardığı ses büyük ölçüde hayvanın
‫kendisine bağlı olacaktır.
‫Yani aç olmak her hayvanın paylaştığı bir şeydir çünkü bu şekilde işlev görürüz.
‫Enerjiye ihtiyacımız var ve bunu yiyeceklerden alıyoruz.
‫Kendimizi yiyecek bulmaya ya da yemek yemeye motive etmek için açlık hissine sahip oluruz.
‫Ancak burada sahip olduğumuz ve ses çıkaran bu sanal yöntemin boş olması gerekmiyor.
‫Şimdi şu yemek yeme yöntemine bakalım.
‫Ve bu eat yöntemi de sanal bir yöntem olacaktır.
‫Bu, alt sınıflarımızın bu yöntemi geçersiz kılmasına olanak tanır.
‫Yani eat yöntemini geçersiz kılmak istiyorsak bunu yapabiliriz, ancak yapmak zorunda değiliz.
‫Genel işlevsellik burada görebileceğiniz gibi olacaktır.
‫Böylece hayvanın aç olup olmadığını kontrol edecektir.
‫Eğer öyleyse, o zaman sadece ismi yazdıracak ve yemek yediğini söyleyecektir.
‫Ve sonra eğer aç değilse, isim aç değil diyecektir.
‫Bu arada isim, hayvanımızın mülkiyetindedir.
‫Yani bu isim, hayvanın özelliği.
‫Tamam, bu bizim yöntemimiz olacak ve onu da sanal hale getireceğiz.
‫Ve sonra başka bir sanal yöntem olan oynamak.
‫Yani bu sanal yöntem play, temel olarak konsolda ismin oynatıldığını söyleyecektir.
‫Şimdi bazı çok basit kırmızı çizgi ifadeleri kullanıyoruz.
‫Bu elbette çok daha karmaşık bir kod olabilir.
‫Yani bu sadece her şeyi basitleştirmek ve tabiri caizse daha insani bir şekilde anlaşılabilir hale getirmek
‫içindir, çünkü oynamak, yemek yemek ve benzeri şeyler, bu doğrudan anlayabileceğimiz bir şeydir
‫çünkü bunu hayatımızda gördük ve bir veritabanından veri okurken veya bunun gibi bir şey yaparken kendimiz de yaptık.
‫Bu genellikle gerçek hayatta gördüğümüz bir şey değildir.
‫Tamam.
‫Şimdi animal'dan türetilecek sınıflarımızı tanımlayalım.
‫Yani bu, hayvan sınıfından miras alınacaktır.
‫Şimdi devam edelim ve K ve C kontrollerini ya da K komutunu kullanalım ve görelim.
‫Bu da daha sonra bir sınıf oluşturabileceğimiz ya da alternatif olarak sadece bir sınıf oluşturabileceğimiz ekranı
‫açacaktır.
‫Aksi takdirde, bir köpek sınıfı oluşturacağım ve bu köpek sınıfı animal'dan miras alacak.
‫Şimdi, hayvan adı dizesi int'in gerekli resmi parametre adına karşılık gelen hiçbir argüman
‫verilmediğini görebilirsiniz.
‫Bu yüzden burada bir kurucu oluşturmamız gerekiyor.
‫O halde devam edelim ve aynı yapıyı takip edecek basit bir kurucu oluşturalım.
‫Adı ve yaşı olacak ve H temel adını iyi bir şekilde kullanacak, böylece o hayvanı tanımladığımız aynı yapıcıyı
‫kullanabileceğiz.
‫Şimdi Happy veya is Happy adlı bu yeni özelliği kullanacağım ve bu bir boolean olacak.
‫Bu, temelde sadece hayvanın, bu durumda köpeğin mutlu olup olmadığını depolayacaktır.
‫Yani köpek mutluysa ve köpekler mutlu hayvanlarsa doğru diyecektir.
‫Yani varsayılan olarak, köpek mutlu olacaktır.
‫Pekala, şimdi yöntemi geçersiz kılalım.
‫Bu yüzden basitçe sanal yöntem olan eat'i geçersiz kılalım.
‫Ve bu nedenle bu override anahtar sözcüğünü kullanıyoruz.
‫Yani normal bir yöntem gibi public, ancak bu override anahtar sözcüğünü ekliyoruz.
‫Yani geçersiz kıl, geçersiz kıl.
‫Sana da.
‫Ya da burada bu yönteme sahip olduğumuza benzer şekilde, ancak burada sanal bir anahtar kelime kullandık.
‫Dolayısıyla bu virtual anahtar sözcüğü alt sınıflarımızın, miras alan sınıflarımızın, yani çocukların temelde işlevselliğini geçersiz kılmak
‫için override anahtar sözcüğünü kullanmasına olanak tanır.
‫Eğer hala hayvan sınıfının ana sınıfının temel işlevselliğini çağırmak istiyorsanız, bu
‫durumda base kullanmamız gerekir, dot it base diyecektir ki, tamam, tabanın yöntemini çağırın ve taban burada gördüğünüz hayvan
‫olacaktır.
‫Yani base'e çift tıkladığınızda ve vurgulandığında, animal'ın da vurgulandığını görebilirsiniz
‫çünkü animal temel sınıfınızdır.
‫Kontrol tuşunu basılı tutup base'e tıklarsanız, temel sınıf olduğu için animal sınıfına
‫atlayacaktır.
‫Ve temel sınıfımızın üç referansı olduğunu görebilirsiniz ve bunlar burada bu temel,
‫bu temel ve en üstteki bu hayvan.
‫Tamam.
‫Yani bu noktada, temel olarak burada temel sınıfımızı, temel sınıf işlevselliğini kullanıyoruz, hiçbir şeyi geçersiz
‫kılmıyoruz.
‫Yani temelde bir köpeğin diğer herhangi bir hayvanla aynı şekilde olduğunu söylüyoruz.
‫Yani burada özel bir şey yok.
‫Şimdi ses çıkarma yöntemine bakalım, çünkü bu oldukça farklı olacak çünkü köpeğin doğru
‫sesler çıkarması gerekiyor.
‫Ve bu ses çıkarma şekli hav olacak.
‫Hav, hav ya da her neyse o da olabilir.
‫Ancak, köpeğiniz ses çıkarmayı sever ve benim durumumda köpek bu şekilde ses çıkaracaktır.
‫Yani bu her hayvan için farklı olacaktır.
‫Yani her hayvan farklı bir ses çıkaracaktır.
‫İşte bu yüzden sesimizi geçersiz kılıyoruz.
‫Kuyu ile iyi, bu burada sahip olduğumuz sesi yapar.
‫Köpeğimiz için bireysel uygulamalarımızla bunu geçersiz kılıyoruz.
‫Şimdi de aynı şeyi oyun için yapalım çünkü köpek sadece mutluysa oynamak ister.
‫O halde durumun böyle olduğunu varsayalım.
‫Yani burada, oyuna bakarsak, Dog'un oynadığını söylüyor, ancak bu sonuçtan memnun değilim.
‫Diyelim ki bir köpek sadece mutlu bir köpekse oynayacaktır.
‫Yani yapabileceğimiz şey, geçersiz kılmak, geçersiz kılmak, oynamak ve köpeğin mutlu olup olmadığını kontrol etmek ve sadece o zaman oynamaktır.
‫Dolayısıyla, köpek için kendi işlevselliğimizle veya koşulu eklediğimiz köpek için benzersiz işlevselliğimizle
‫temel hayvan işlevselliğinin üzerine zaten yazdık.
‫Ama bu her şey olabilir.
‫Durumunuzla sınırlı değilsiniz.
‫Bu tamamen farklı bir uygulama türü olabilir.
‫Temel oyunu kullanmanıza bile gerek yok, bu yüzden istediğinizi kullanmakta tamamen özgürsünüz.
‫Örneğin, make sound metodunda base make sound kullanmadığımızı görebilirsiniz çünkü make sound metodunda
‫çağrılacak bir şey yoktur, dolayısıyla burada ilginç bir şey yoktur.
‫Ama olsa bile, üs çağırmak, ses çıkarmak veya üs, yer oyunu yapmak zorunda değiliz.
‫İsteseydik burada tamamen farklı bir şey uygulayabilirdik.
‫Yani bu bizim köpeğimiz olacak.
‫Şimdi, bu iki sınıfı kaydedelim ve programımızdaki CSS dosyasında bunlarla çalışalım.
‫Tamam.
‫Burada, öncelikle bir köpek oluşturalım, bu yüzden köpeği yeni bir köpek olarak adlandıracağım.
‫CIF adını taşıyacak ve köpek 15 yaşında olacak.
‫Oldukça yaşlı bir köpek.
‫Ve şimdi.
‫Köpeğin özelliğine erişebilmek için şöyle bir şey yazabiliriz.
‫Yani kırmızı çizgi köpek ismi.
‫Böylece köpek nokta adı ve köpek yaşı kullanarak köpeğin adını ve yaşını alabiliriz.
‫Ve sonra, örneğin, oynayabilir ve yemek yiyebiliriz.
‫Tamam, bunu hızlıca yapalım.
‫Köpek yeme oyunu oynama.
‫Hadi şunu çalıştıralım.
‫Ve Sive'nin 15 yaşında olduğunu görebiliyoruz.
‫En güvenli oyun, yüzey yeme.
‫Tamam.
‫Yani oyna ve iş ye.
‫Tamamen iyi.
‫Şimdi, elbette, Dog Dot'u da kullanabiliriz.
‫Ve burada ses çıkar.
‫Bu da köpek sesi çıkarır.
‫Şunu çalıştıralım.
‫Hisseleri görüyorsun, diyor Wolf.
‫Tamam.
‫Şimdi hızlıca özetleyelim ve bunun son videodaki örnekten ne kadar farklı olduğuna bakalım.
‫Yani temel sınıfımız var ve bu temel sınıfın birkaç özelliği var ve ayrıca birkaç yöntemi,
‫tabiri caizse işlevi var.
‫Yani burada ses çıkarmak için, örneğin E yöntemi vb.
‫Ve bunları miras alan sınıfta değiştirilebilir veya geçersiz kılınabilir hale getirmek için virtual anahtar sözcüğünü
‫ekleyerek sanal hale getiriyoruz.
‫Yani köpekler miras alınan sınıf ya da alt sınıftır.
‫Ve bu alt sınıf, override anahtar sözcüğünü kullanarak temel sınıftaki belirli bir yöntemi geçersiz kılmamıza olanak
‫tanır.
‫Yani şimdi olacak.
‫İşlevselliği geçersiz kılın.
‫Böylece mevcut yöntemin işlevselliğini veya kodunu değiştirecektir.
‫Tabii ki bunu temel alarak kullanmanız dışında.
‫Yani bunun yapacağı şey temelde sadece ana sınıfın, yani ebeveynin yöntemini çağırmak
‫olacaktır, ancak burada kendi kodunuzu uygulamakta özgürsünüz.
‫Temel sınıfı çağırmak zorunda değilsiniz.
‫Elbette temel sınıf işlevselliğinin belirli bir koşulda çağrılması için koşullar ekleyebilirsiniz.
‫Ya da geçersiz kılma yöntemlerinin içine istediğiniz kodu yazabilirsiniz ve sonra başka bir şey farklı
‫olur.
‫Bu da bizim kurucumuz için buraya kod ekliyor olmamızdır.
‫Alt sınıf.
‫Dolayısıyla, bu köpek sınıfı bir yandan temel sınıfımızın kullandığı özellikleri kullanırken, aynı zamanda
‫kendi uygulamasına da sahiptir.
‫Bir köpek yaratıldıktan sonra ne olmalıdır?
‫Yani bir köpek nesnesi oluşturulduktan sonra?
‫Ve bizim durumumuzda bu sadece köpeğin mutlu olacağını söylemektir.
‫Tamam.
‫Bu video için bu kadar.
‫Elbette miras konusuna daha çok bakacağız, çünkü hala öğrenecek çok şey var.
‫Bir sonraki videoda görüşmek üzere.