Java Arayüzü
Arayüzler
Java'da soyutlama elde etmenin başka bir yolu da arayüzlerdir.
An , ilgili yöntemleri boş gövdelerle gruplandırmak için kullanılan interface
tamamen " soyut bir sınıftır ":
Örnek
// interface
interface Animal {
public void animalSound(); // interface method (does not have a body)
public void run(); // interface method (does not have a body)
}
Arayüz yöntemlerine erişmek için, arayüzün başka bir sınıf tarafından implements
( yerine extends
) anahtar kelimesiyle "uygulanması" (bir tür miras alınmış gibi) olması gerekir. Arayüz yönteminin gövdesi "implement" sınıfı tarafından sağlanır:
Örnek
// Interface
interface Animal {
public void animalSound(); // interface method (does not have a body)
public void sleep(); // interface method (does not have a body)
}
// Pig "implements" the Animal interface
class Pig implements Animal {
public void animalSound() {
// The body of animalSound() is provided here
System.out.println("The pig says: wee wee");
}
public void sleep() {
// The body of sleep() is provided here
System.out.println("Zzz");
}
}
class Main {
public static void main(String[] args) {
Pig myPig = new Pig(); // Create a Pig object
myPig.animalSound();
myPig.sleep();
}
}
Arayüzlerle İlgili Notlar:
- Soyut sınıflar gibi , arabirimler nesne oluşturmak için kullanılamaz (yukarıdaki örnekte, MyMainClass'ta bir "Animal" nesnesi oluşturmak mümkün değildir)
- Arayüz yöntemlerinin bir gövdesi yoktur - gövde "implement" sınıfı tarafından sağlanır
- Bir arabirimin uygulanmasında, tüm yöntemlerini geçersiz kılmalısınız.
- Arayüz yöntemleri varsayılan olarak
abstract
vepublic
- Arayüz öznitelikleri varsayılan
public
olarak vardırstatic
vefinal
- Bir arabirim bir kurucu içeremez (nesneleri oluşturmak için kullanılamayacağından)
Arayüzler Neden ve Ne Zaman Kullanılır?
1) Güvenliği sağlamak için - belirli ayrıntıları gizleyin ve yalnızca bir nesnenin (arayüzün) önemli ayrıntılarını gösterin.
2) Java "çoklu kalıtımı" desteklemez (bir sınıf yalnızca bir üst sınıftan miras alabilir). Ancak, sınıf birden fazla arabirim uygulayabildiğinden , arabirimlerle elde edilebilir . Not: Birden çok arabirim uygulamak için bunları virgülle ayırın (aşağıdaki örneğe bakın).
Çoklu Arayüzler
Birden çok arabirim uygulamak için bunları virgülle ayırın:
Örnek
interface FirstInterface {
public void myMethod(); // interface method
}
interface SecondInterface {
public void myOtherMethod(); // interface method
}
class DemoClass implements FirstInterface, SecondInterface {
public void myMethod() {
System.out.println("Some text..");
}
public void myOtherMethod() {
System.out.println("Some other text...");
}
}
class Main {
public static void main(String[] args) {
DemoClass myObj = new DemoClass();
myObj.myMethod();
myObj.myOtherMethod();
}
}