Kamis, 22 Desember 2011

INTERFACE

Ketika mendeklarasikan class yang mengimplementasikan interface, menandatangani kontrak untuk mengimplementasikan semua method di dalam interface.

public interface PersonDao{
            void save(Person p);
            void delete(Person p);
            Person getById(long id);
}

Class PersonDaoImpl yang akan mengimplementasikan interface Person dao, maka semua method yang ada di interface PersonDao akan diimplementasikan juga

public class PersonDaoImpl implements PersonDao{
              public void save (Person p){
                          System.out.println("Menyimpan person");
              }
              public void delete (Person p){
                          System.out.println("Menghapus person");
             }
             public Person getById (Long id){
                          Person p = new Person();
                          p.setId(id);
                          p.setNama("abc");
                          return p;
             }
}

Cara agar tidak semua method dalam interface diimplementasikan pada class implementasinya dengan menggunakan keyword abstract pada deklarasi class, serta gunakan keyword abstract pada method yang tidak diimplementasikan.

public abstract class PersonDaoImpl implements PersonDao{
                public void save(Person p){
                          System.out.println("Menyimpan person");
                }
                public void delete(Person p){
                          System.out.println("Menghapus person");
                }
                public abstract Person getById(Long id)
}

Pada dasarnya interface adalah sebuah class yang dideklarasikan dengan keyword abstract dan semua method didalamnya bersifat public abstract, interface PersonDao statusnya setara seperti

public abstract class PersonDao{
            public abstract void save(Person p);
            public abstract void delete(Person p);
            public abstract Person getById(Long id);
}

Tetapi tetap saja interface dengan class adalah dua hal yang berbeda.
Interface sama hal nya dengan class dapat meng extends interface lain. Interface yang meng extends interface lain akan mempunyai semua method yang digunakan oleh class orang tuanya.

Tidak ada komentar:

Posting Komentar