Java'da interface, bir class'ta olması gereken method ve property'leri tanımlayan yapıdır. Kendisi normal bir class değildir, sadece neyin yapılacağını göstermekte, ancak nasıl yapılacağını göstermemektedir. Örnek olarak, bir madde'de ne gibi işlevler ve özellikler olması gerektiğini belirten bir interface yazalım.
public interface Matter{
public double getVolume();
public double getMass();
}
Bu ifade, 'bir maddenin yoğunluğu, hacmi ve kütlesi olur' demenin Java'daki yoludur. Ancak görüldüğü gibi maddenin yoğunluğu nasıl hesaplanır, kütlesi nasıl verilir, hiç bir şekilde belirtmemektedir. Sadece ne olması gerktiğini söylemektedir.
Interface'in Implementation'u
Bir class'ın interface'deki bütün method'ları içerdiğini, gerçekleştirdiğini belirtmesine implementation denir ve 'implements' keyword'üyle kullanılır.
public class CubeMatter implements Matter{
public double density=1.0;
public double edge=1.0;
public double getDensity(){
return density;
}
public double getVolume(){
return edge*edge*edge;
}
public double getMass(){
return density*edge*edge*edge;
}
}
Burada "Küp diye bir nesnemiz var ve o bir maddedir, yani bir maddede olabilecek bütün nitelikler onda da bulunur." demiş olduk ve bunların nasıl hesaplandığını gösterdik. Aynı interface'i implement eden başka bir class'da yapılabilir.
public class SphereMatter implements Matter{
public double density=1.0;
public double radius=1.0;
public double getDensity(){
return density;
}
public double getVolume(){
return (3.14 * radius * radius * radius )/3;
}
public double getMass(){
return density*(3.14 * radius * radius * radius )/3;
}
}
Görüldüğü gib bu class'da aynı interface implement ediyor. Ancak hacim ve kütle hesaplaması çok değişik.
Alıntıdır: gogodoro.com