defaultAşağıdaki notlar anahtar sözcüklerin ve staticJava 8'deki Arayüzlerdeki kullanımını kapsar .
Kod örneği 1. Alanların veya yöntemlerin belirsiz olması tek başına sorun yaratmaz ancak bu alanlara/yöntemlere belirsiz bir şekilde atıfta bulunmak derleme zamanı hatasına neden olur.
Yani : diyemezsiniz System.out.println(VALUE);çünkü belirsiz olacaktır (iki DEĞER tanımı vardır). Ancak aşağıdaki satırlar geçerlidir:
C tc = new C();
System.out.println(( ( I1) tc).VALUE);
I1 tc = new C();
System.out.println(tc.VALUE);
Kod 2 örneği default. Anahtar kelime.
getId()Arayüz1'deki varsayılan yöntemin bu olduğuna dikkat edin .
Arayüz2 arayüzü getId yöntemini soyut olarak yeniden bildirdiğinden, D sınıfının ya bu yöntem için bir uygulama sağlaması ya da soyut olarak işaretlenmesi gerekir. Bu durumda, şu ifade nedeniyle sınıfın özetini yapmak işe yaramayacaktır: Interface1 acct = new D(); Eğer D sınıfını soyut yaparsanız aşağıdaki derleyici hatasını alırsınız: Cannot instantiate the type D.
Eğer D sınıfı, Arayüz2 yerine Arayüz1'i uygulamış olsaydı, getId varsayılan yöntemi için uygulamanın sağlanması zorunlu değildir. Bu özellik, arayüzleri ek yöntemlerle genişletmemize yardımcı olacaktır; ihtiyacımız olan tek şey, anahtar kelimeyi defaultArayüz1'de kullanıldığı gibi kullanarak arayüzde varsayılan bir uygulama sağlamaktır .
Kod 3 örneği. Java birden fazla sınıfın genişletilmesine izin vermez çünkü bu, derleyicinin hangi üst sınıf yöntemini kullanacağına karar veremediği “Elmas Sorunu” ile sonuçlanacaktır. Varsayılan yöntemlerle elmas sorunu arayüzlerde de ortaya çıkacaktır.
Yukarıda gösterilen D sınıfı, Arayüz1 ve Arayüz2'yi uyguluyor. Derleyici hangi getId yöntemini seçeceğine karar veremez. Arayüzlerin ortak varsayılan yöntemlerinin uygulanmasının sağlanması zorunlu hale getirilmiştir. Dolayısıyla, eğer bir sınıf yukarıdaki arayüzlerin her ikisini de uyguluyorsa, yöntem için uygulama sağlaması gerekecektir getId(), aksi takdirde derleyici derleme zamanı hatası verecektir.
Java 8 arayüzünün varsayılan yöntemleri hakkında önemli noktalar:
getOtherId()E sınıfının basit bir sınıf yöntemi olduğunu, arayüz yöntemini geçersiz kılmadığını unutmayın .
Uygulamayı çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
Object 1
E: get Id
E: get Other Id
Object 2
E: get Id
Calling the static method in Interf1
Interface 1: get Other Id
Java 8 arayüzü statik yöntemiyle ilgili önemli noktalar:
Daha fazla bilgi için Oracle'daki resmi belgelere bakın .
facebook.com'a bir talepte bulunduğunuzda, bilgisayarınız o bağlantıyı kurabilmesi için bu alan adını bir IP adresine çevirmek üzere alan adını arar.
Giriş Apache Kafka, büyük ölçekli, yüksek verimli, hataya dayanıklı gerçek zamanlı veri akışını yöneten açık kaynaklı bir dağıtılmış akış platformudur. Sistem, üreticilerin konulara mesaj yayınladığı ve tüketicilerin mesajları tüketmek için bu konulara abone olduğu bir yayınla-abone ol modeline dayanmaktadır.
Merhaba, siber meraklıları! Tehdit avı için OSINT serisine tekrar hoş geldiniz. İlk makalede, size OSINT'e genel bir bakış ve onun tehdit avlamadaki önemi hakkında bilgi verdim.
"Hey Siri, Olivia Dean'in Me Dive oyununu çal." Nijerya, Akure'deki Future Academy Africa'da stajıma başladığımda Mayıs 2021'di.
Geçenlerde dünyanın en büyük profesyonel sosyal ağı olan Linkedin'deydim ve dikkatimi çeken, takip ettiğim serbest tasarımcıların gönderilerini buldum. Hepsi uçaklardan, dizüstü bilgisayarlarıyla sahilden, yüzme havuzlarından ve muhteşem manzaralı ofislerden fotoğraflar yayınladılar.
Hayden, birlikte geçirdikleri akşamdan sonra Katie'yi üniversite yurduna geri götürdüğünde gece yarısını geçmişti. Sabah erkenden dersi vardı ve önceki gece onunla kaldıktan sonra bir daha kıyafet değiştirmedi.