Java SE Ders27 - Interface (Arayüz) Kavramı


 Interface (Arayüz) içinde sadece sabit değişkenler ve abstract (soyut) metotlar içeren yapılardır. Sınıflara çok benzemektedir. Aşağıda interface (arayüz) 'in bazı özellikleri ve sınıflardan farkları belirtilmiştir.
  • Sınıflardan farklı olarak extends anahtar sözcüğü yerine, implements anahtar sözcüğü kullanılır.
  • Sınıflar aynı anda bir sınıftan türetilebilirken, bir sınıf aynı anda bir veya daha fazla interface (arayüzü) 'i implement edebilir.
  • Interface (Arayüz) içinde sadece sabit değişkenler ve abstract (soyut) metotlar bulunur.
  • Interface (Arayüz) içerisindeki tüm abstract (soyut) metotları override etmeyen sınıf soyut sınıf olur.Çünkü abstract (soyut) sınıf içerisinde en az bir abstract (soyut) metot içeren sınıftır.

Şimdi daha önceki konularda yer alan örneği bu konuya uyarlayalım.

Main.java
package test;

public class Main {

 public static void main(String[] args) {

  Sekil s1 = new Kare(4);
  Sekil s2 = new Ucgen(2, 11);

  System.out.println("Kare alan\t: " + s1.alanHesapla());
  System.out.println("Ucgen alan\t: " + s2.alanHesapla());

 }

}

Sekil.java
package test;

public interface Sekil {
 
 public abstract int alanHesapla();
}

Kare.java
package test;

public class Kare implements Sekil {
 private int kenar;

 public Kare() {
 }

 public Kare(int kenar) {
  this.kenar = kenar;
 }
 
 @Override
 public int alanHesapla(){
  return kenar*kenar;
 }

 public int getKenar() {
  return kenar;
 }

 public void setKenar(int kenar) {
  this.kenar = kenar;
 }

}

Ucgen.java
package test;

public class Ucgen implements Sekil {
 private int taban, yukseklik;

 public Ucgen() {
 }

 public Ucgen(int taban, int yukseklik) {
  this.taban = taban;
  this.yukseklik = yukseklik;
 }

 @Override
 public int alanHesapla() {
  return (taban * yukseklik) / 2;
 }

 public int getTaban() {
  return taban;
 }

 public void setTaban(int taban) {
  this.taban = taban;
 }

 public int getYukseklik() {
  return yukseklik;
 }

 public void setYukseklik(int yukseklik) {
  this.yukseklik = yukseklik;
 }
 
}

Interface (Arayüz) Kavramı

Yorumlar

Bu blogdaki popüler yayınlar

Java SE Ders24 - Composition (Kompozisyon)

Spring Ders20 - Aspect Oriented Programming - AspectJ Annotation Style

JSF Ders30 - Page Template (Sayfa Şablonu)