9 abstract class interface
TRANSCRIPT
-
7/23/2019 9 Abstract Class Interface
1/27
ABSTRACT CLASS
Imam Fahrur Rozi
-
7/23/2019 9 Abstract Class Interface
2/27
ABSTRACT CLASS
Abstract class adalah class yang
mempunyai setidaknya satu abstract
method.
Abstract method adalah method yangtidak memiliki body (hanya deklarasi
method).
Implementasi dari isi abstract methodtersebut dilakukan pada subclass
-
7/23/2019 9 Abstract Class Interface
3/27
ABSTRACT CLASS
Bila subclass method abstract tidak
mengimplementasikan isi semua
method maka subclass tersebut harus
dideklarasikan abstract. Dan Deklarasi method abstract pada
subclass tersebut boleh tidak dituliskan
kembali
-
7/23/2019 9 Abstract Class Interface
4/27
ABSTRACT CLASS
Abstract class tidak bisa dibuat
objectnya
Object hanya bisa dibuat dari non-
abstract class (concrete class)
Konsekuensinya suatu abstract class
haruslah diturunkan dimana pada
subclass tersebut berisi implementasidari abstract method yang ada di
superclass
-
7/23/2019 9 Abstract Class Interface
5/27
ABSTRACT VS CONCRETE CLASS
ABSTRACT CLASS : Tidak bisa
diinstansiasi mjd objek. Kecuali setelah
diturunkan dulu.
CONCRETE CLASS : Class yang bisalangsung diinstansiasi menjadi objek
-
7/23/2019 9 Abstract Class Interface
6/27
KAPAN DIGUNAKAN ABSTRACT CLASS?
Ketika diinginkan membuat satu class
yang hanya berfungsi sebagai abstraksi
(model yang umum) dan tidak
diinginkan untuk diinstansiasi suatuobjek darinya.
-
7/23/2019 9 Abstract Class Interface
7/27
NOTASI ABSTRACT CLASS DI UML
Baik klas atau method yang bertipe
abstract maka ditulis dengan abjad
miring / italic
BangunDatar
+luas
+keliling+hitungLuas()+hitungKeliling()
-
7/23/2019 9 Abstract Class Interface
8/27
MISAL
Bentuk bangun dataramasih sangat luas dan
abstrak, karena bentuknya
blm spesifik. Jadi tidak adaobjek yang ingin langsung
dibuat darinya
Objek yang dibuat adalah
objek dari SegiTigaSikudan SegiEmpat
BangunDatar
+luas+keliling
+hitungLuas()+hitungKeliling()
SegiEmpat
+panjang+lebar
+hitungLuas()+hitungKeliling()
SegiTigaSiku
+alas+tinggi+sisiMiring
+hitungLuas()+hitungKeliling()
-
7/23/2019 9 Abstract Class Interface
9/27
DEKLARASI ABSTRACT CLASS
Dengan menuliskan keyword abstract
didepan keyword class
Contoh:
public abstact class BangunDatar{
}
-
7/23/2019 9 Abstract Class Interface
10/27
DEKLARASI ABSTRACT METHOD
Dengan memberikan keyword abstract
sebelum menuliskan tipedata fungsi/
method
Contoh
public abstract void hitungLuas();
-
7/23/2019 9 Abstract Class Interface
11/27
INGAT!
Di dalam abstract class boleh ada
deklarasi method non abstract (yang
sudah ada isinya/implementasinya)
Jika suatu dalam suatu class adamethod abstract, maka class tersebut
juga harus dideklarasikan abstract
Unistanciable/tak bisa diinstansiasi
-
7/23/2019 9 Abstract Class Interface
12/27
INTERFACE
-
7/23/2019 9 Abstract Class Interface
13/27
INTERFACE
Terdiri dari konstanta dan method tanpaimplementasi
Interface menyerupai class
public interface NamaInterface{
//method tanpa implementasi
//definisi konstanta
}
Public!
supaya bisa diakses dimana saja Tanpa public!default hanya bisa diakses dalam
satu package
-
7/23/2019 9 Abstract Class Interface
14/27
INTERFACE
Class yang mengimplementasikan interface,semua konstanta dan method interface akan
dimiliki oleh class ini.
Method pada interface harusdiimplementasikan pada class yang
mengimplementasikan interface ini.
Bila class yang mengimplementasikan
interface tidak menginplemetasikan semuamethod dalam interface, makaclass tersebut
harus dideklarasikan abstract.
-
7/23/2019 9 Abstract Class Interface
15/27
INTERFACE
Kita bisa membuat subinterface dengan
menggunakan kata extends.
Satu class boleh mengimplementasikan
lebih dari satu interface.
Bila suatu class merupakan subclass
dan akan mengimplementasikan
interface maka kata extendsharuslebih dulu dari implements
-
7/23/2019 9 Abstract Class Interface
16/27
INTERFACE
Method yang dideklarasikan didalam
interface secara otomatis adalah public
dan abstract.
Variable dalam interface secaraotomatis adalah public, static, dan final
-
7/23/2019 9 Abstract Class Interface
17/27
DEKLARASI INTERFACE
public interface NamaInterface{
//deklarasi konstanta
//deklarasi abstract method
}
-
7/23/2019 9 Abstract Class Interface
18/27
CLASS IMPLEMENTS INTERFACE
Contoh:
public class SegiEmpat extends BangunDatar
implements Resizable {
!!..
}
-
7/23/2019 9 Abstract Class Interface
19/27
INTERFACE di UML
Mirip simbol Class tapi di atas nama
ada stereotype
Flyer
+takeOver()
+land()+fly()
-
7/23/2019 9 Abstract Class Interface
20/27
IMPLEMENTATION di UML
Relasi Implementasi
(ketika suatu Class
implements ke
Interface), mirip sepertiinheritance, tapi garis
panahnya putus2.
Flyer
+takeOff()+land()
+fly()
AirPlane
+takeOff()+land()+fly()
-
7/23/2019 9 Abstract Class Interface
21/27
CONTOH
-
7/23/2019 9 Abstract Class Interface
22/27
MULTIPLE IMPLEMENTATION
-
7/23/2019 9 Abstract Class Interface
23/27
INHERITANCE + IMPLEMENTATION
-
7/23/2019 9 Abstract Class Interface
24/27
This sounds like multiple inheritance.Not quite. The danger of multiple
inheritance is that a class could inherit
two distinct implementations of thesame method. This is not possibble with
interfaces because an interface method
declaration supplies no implementation
-
7/23/2019 9 Abstract Class Interface
25/27
CONTOH INTERFACE
-
7/23/2019 9 Abstract Class Interface
26/27
MULTIPLE INTERFACE
-
7/23/2019 9 Abstract Class Interface
27/27
A class can implement more than oneinterface. Not only can the SeaPlane
fly, but it can also sail. The SeaPlane
class extends the Airplane class, so itinherits that implementation of the Flyer
interface. The SeaPlane class also
implements the Sailer interface