Anahtar Farkı – Java'da Kalıtım vs Arayüz
Java, Sun Microsystems tarafından geliştirilen bir programlama dilidir. Java, çeşitli uygulamalar geliştirmek için kullanılabilir. Nesne yönelimli, yapılandırılmış vb. destekleyen çok paradigmalı bir dildir. Java'nın temel avantajı, Nesne Yönelimli programlamayı (OOP) desteklemesidir. Programcı sınıflar ve nesneler oluşturabilir. OOP'de dört sütun vardır. Bunlar kalıtım, polimorfizm, soyutlama ve kapsüllemedir. Kalıtım ve arayüzler OOP ile ilgilidir. Miras ve arabirim arasındaki temel fark, kalıtımın mevcut sınıflardan yeni sınıflar türetmek ve bir arabirimin soyut sınıfları ve çoklu kalıtımı uygulamak olmasıdır.
Java'da Kalıtım Nedir?
Kalıtım, kodun yeniden kullanılabilirliğini sağlayabilir. Kalıtım, mevcut bir sınıfın niteliklerini ve yöntemlerini yeniden kullanmaya yardımcı olur. Eski sınıfı kullanarak yeni sınıf türetme mekanizmasına kalıtım denir. Eski sınıf, ana sınıf veya süper sınıf olarak bilinir. Türetilmiş sınıfa alt sınıf veya alt sınıf denir.
Java mirasının sözdizimi aşağıdaki gibidir.
sınıf altsınıf_adı üst sınıf_adı'nı genişletir {
değişken bildirimi;
yöntem bildirimi;
}
Kalıtım kavramı aşağıdaki örnek kullanılarak açıklanabilir. Aşağıdaki gibi A adında bir sınıf olduğunu varsayalım.
genel A sınıfı{
genel geçersiz toplam(){
System.out.println(“Sum”);
}
}
Mevcut sınıfı değiştirmeden yeni bir metot eklemek istiyorsak aşağıdaki gibi yapabiliriz.
genel B sınıfı{
public void sub(){
System.out.println(“Alt”);
}
}
Programcı, A sınıfı toplamı() kullanmak için kalıtımı kullanabilir.
public B sınıfı, A sınıfını genişletiyor{
public void sub(){
System.out.println(“Alt”);
}
}
Ana fonksiyonda, bir B nesnesi oluşturmak ve kalıtım kullanarak B sınıfına ait sub() ve A sınıfına ait olan sum() öğesini çağırmak mümkündür.
public static void main(String args){
B nesne=yeni B();
obj.sub();
obj.sum();
}
Kalıtımın farklı türleri vardır. Bunlar; tekli kalıtım, çoklu kalıtım, çok seviyeli kalıtım ve hiyerarşik kalıtımdır. Tek kalıtımda bir temel sınıf ve bir türetilmiş sınıf vardır. Çok seviyeli kalıtımda temel sınıf, ara sınıf ve türetilmiş sınıf olmak üzere üç sınıf vardır. Ara sınıf, temel sınıftan miras alır ve türetilmiş sınıf, ara sınıftan miras alır. Hiyerarşik kalıtımda bir temel sınıf ve birçok türetilmiş sınıf vardır. Hibrit kalıtım olarak bilinen özel bir tür vardır. İki veya daha fazla kalıtım türünün birleşimidir.
Şekil 01: Kalıtım
Çoklu kalıtımda birçok temel sınıf ve bir türetilmiş sınıf vardır. A ve B sınıflarının temel sınıflar olduğunu varsayalım. C sınıfı türetilmiş sınıftır. A ve B sınıflarının her ikisi de aynı metoda sahipse ve programcı türetilmiş sınıftan o metodu çağırırsa, bu bir belirsizlik sorununa neden olur. İki sınıfın devralınması derleme zamanı hatasına neden olabilir. Bu nedenle, Java'da çoklu kalıtım desteklenmez. Bu sorunun üstesinden gelmek için bir arayüz kullanılabilir.
Java'da Arayüz Nedir?
Soyutlama, uygulama ayrıntılarını gizleme ve yalnızca işlevleri kullanıcıya gösterme işlemidir. Soyutlama, Soyut Sınıflar veya Arayüzler kullanılarak gerçekleştirilebilir. Soyut bir yöntem, uygulaması olmayan bir yöntemdir. En az bir soyut yöntemi olan bir sınıf, soyut bir sınıftır. Soyut bir sınıf örneği aşağıdaki gibidir.
soyut A sınıfı{
soyut geçersiz toplam();
}
A ve B olarak iki soyut sınıf olduğunu varsayalım. A ve B'nin soyut yöntemlerini uygulamak için yeni bir C sınıfı oluşturulur. O zaman C sınıfı hem A hem de B'yi genişletmelidir. Ancak Java'da çoklu kalıtım desteklenmez. Bu nedenle arayüzleri kullanmalısınız. Arayüzler yöntemleri bildirmek için kullanılabilir, ancak yöntemleri tanımlamak mümkün değildir. Arayüzleri kullanarak bir nesne oluşturmak mümkün değildir. C Sınıfı, A ve B arabirimindeki tüm yöntemleri uygulamalıdır.
arayüz A{
void sum();
}
arayüz B{
void sub();
}
sınıf C, A, B'yi uygular{
genel geçersiz toplam(){
System.out.println(“Toplama”);
}
public void sub(){
System.out.println(“Çıkarma”);
}
}
Şimdi, ana programda bir C nesnesi oluşturmak ve her iki yöntemi de çağırmak mümkündür.
public static void main (String args) {
C nesnesi=yeni C();
obj.sum();
obj.sub();
}
Yani, arayüzler çoklu kalıtımı uygulamak için kullanabilir.
Arayüzlerin bir başka kullanımı da güvenlik sağlamasıdır. Aşağıdaki koda bakın.
arayüz A {
void sum ();
}
sınıf B, A'yı uygular {
genel geçersiz toplam () {
System.out.println(“Toplama”);
}
public void çarpma () {
System.out.println(“Çarpma”);
}
}
B nesnesini oluştururken, toplama () ve çarpma () yöntemlerinin ikisini de çağırmak mümkündür. Programcı çarpma () işlevini kullanarak kısıtlamak isterse, aşağıdaki gibi mümkündür.
public static void main(String args){
A nesnesi=yeni B();
obj.sum();
}
A nesnesi=yeni B(); bir nesne oluşturacaktır. A tipindedir ve bellek B olarak ayrılmıştır. sum() öğesini çağırmak mümkündür, ancak multiple() öğesini çalıştıramaz. Bu kısıtlama, arayüzler kullanılarak yapılır.
Java'da Kalıtım ve Arayüz Arasındaki Benzerlikler Nelerdir?
- Her iki kavram da Nesne Yönelimli Programlama ile ilgilidir
- Her ikisi de IS-A ilişkisini temsil eder.
Java'da Kalıtım ve Arayüz Arasındaki Fark Nedir?
Kalıtım vs Java'da Arayüz |
|
Kalıtım, mevcut sınıflardan yeni sınıflar türetmek için kullanılan bir OOP kavramıdır. | Arayüz, soyutlama ve çoklu kalıtım uygulamak için OOP'de bir mekanizmadır. |
Kullanım | |
Kalıtım, kodun yeniden kullanılabilirliğini sağlar. | Arayüzler soyutlama ve çoklu kalıtım sağlar. |
Özet – Java'da Kalıtım vs Arayüz
Java, nesne yönelimli programlamayı destekleyen çok paradigmalı bir programlama dilidir. Kalıtım ve arayüzler, nesne yönelimli programlama ile ilgilidir. Miras ve arabirim arasındaki fark, kalıtımın mevcut sınıflardan yeni sınıflar türetmek ve arabirimlerin soyut sınıfları ve çoklu kalıtımı uygulamak olmasıdır.
Java'da Kalıtım ve Arayüzün PDF Sürümünü İndirin
Bu makalenin PDF sürümünü indirebilir ve alıntı notuna göre çevrimdışı amaçlarla kullanabilirsiniz. Lütfen PDF sürümünü buradan indirin Java'da Kalıtım ve Arayüz Arasındaki Fark