SlideShare uma empresa Scribd logo
1 de 52
Inheritance, polymorphism, danInheritance, polymorphism, dan
interfaceinterface
Tujuan
Pada akhir pembahasan, peserta diharapkan mampu
untuk :
 Mendeskripsikan superclass dan subclass
 Melakukan override method dari superclass
 Membuat final method dan final class
 Polymorphism (abstract class, interface)
Pewarisan (inheritance)
Semua class dalam Java, termasuk class yang
membangun Java API, merupakan subclass dari
superclass Object.
Contoh dari hierarki class :
Pewarisan (inheritance)
Superclass
class yang letaknya di atas class tertentu
di dalam hierarki.
Subclass
class yang letaknya di bawah class
tertentu di dalam hierarki.
Pewarisan (inheritance)
Keuntungan penggunaan Inheritance dalam OOP :
Reusability
 Ketika behavior(method) dideklarasikan dalam superclass,
behavior tersebut otomatis diwariskan ke seluruh subclass
 Jadi, Anda dapat meng-enkode method hanya sekali dan
method tersebut dapat digunakan oleh seluruh subclass
 Sebuah subclass hanya perlu mengimplementasikan perbedaan
antara dirinya sendiri dan parent-nya
Pewarisan (inheritance)
 Untuk mengambil sebuah class, gunakan keyword extends.
 Untuk lebih jelasnya, mari buat class parent sederhana, misalkan kita
mempunyai class parent bernama Person.
public class Person {
protected String name;
protected String address;
/**
* Default constructor
*/
public Person(){
System.out.println(“Inside Person:Constructor”);
name = ""; address = "";
}
. . . .
}
Pewarisan (inheritance)
 Sekarang, kita buat class lain bernama Student
 Karena murid juga termasuk orang, kita putuskan untuk meng-extend
class Person, sehingga kita dapat mewariskan semua properti dan
method yang telah ada di class Person.
 Untuk itu, kita bisa menulis :
public class Student extends Person {
public Student(){
System.out.println(“Inside Student:Constructor”);
}
. . . .
}
Pewarisan (inheritance)
 Ketika sebuah object Student
diinstansiasi, default constructor dari
superclass Student dipanggil secara
implisit untuk melakukan inisialisasi
seperlunya.
 Setelah itu, pernyataan di dalam
constructor subclass dijalankan.
Pewarisan (inheritance)
 Untuk memperjelasnya, perhatikan kode dibawah ini,
 Dalam kode ini, kita membuat sebuah object dari class
Student. Hasil dari program adalah:
public static void main( String[] args ){
Student anna = new Student();
}
Inside Person:Constructor
Inside Student:Constructor
Pewarisan (inheritance)
Flowchart program ditampilkan dibawah ini :
Keyword “super”
 Sebuah subclass dapat juga memanggil secara eksplisit
sebuah constructor superclass yang ada diatasnya.
 Dapat dilakukan dengan menggunakan pemanggilan
constructor super.
 Pemanggilan constructor super didalam constructor subclass
akan mengakibatkan eksekusi dalam constructor yang
relevan dari superclass, berdasarkan passing argument-nya.
Keyword “super”
 Sebagai contoh, pada contoh sebelumnya yaitu class
Person dan Student, kita tunjukkan sebuah contoh
pemanggilan constructor super.
 Tuliskan kode berikut untuk class Student
public Student(){
super( "SomeName", "SomeAddress" );
System.out.println("Inside
Student:Constructor");
}
Keyword “super”
Beberapa hal untuk diingat ketika menggunakan pemanggilan
constructor super :
 Pemanggilan super() HARUS DIJALANKAN SESUAI DENGAN
STATEMENT PERTAMA DALAM SEBUAH CONSTRUCTOR.
 Pemanggilan super() hanya dapat digunakan di dalam definisi
constructor.
 Hal ini menjelaskan bahwa constructor this() dan pemanggilan
super() TIDAK DAPAT DIJALANKAN SECARA BERSAMAAN DI
DALAM CONSTRUCTOR YANG SAMA.
Keyword “super”
Penggunaan lainnya dari super mengarah pada member
dari superclass.
Sebagai contoh,
public Student() {
super.name = “somename”;
super.address = “some address”;
}
Meng-override method
 Jika sebuah subclass menginginkan implementasi yang
berbeda terhadap method dari superclassnya, maka
salah satu caranya dapat dilakukan dengan meng-
override method bersangkutan.
 Sebuah subclass dapat meng-override method
superclassnya dengan menyediakan sebuah
implementasi baru untuk method tersebut.
contoh
berikut ini merupakan implementasi dari method
getName didalam superclass Person
public class Person {
:
:
public String getName(){
System.out.println("Parent: getName");
return name;
}
}
contoh
 Untuk meng-override method getName dari superclass Person, di
dalam subclass Student, kita tulis :
 Sekarang, ketika kita memanggil method getName dari object subclass
Student, method getName yang di-override akan dipanggil, dan
hasilnya akan menjadi,
public class Student extends Person{
:
:
public String getName(){
System.out.println("Student: getName");
return name;
}
:
}
Student: getName
Class final
Final Class
 Class yang tidak bisa di-extends
 Untuk mendeklarasikan final class, kita tulis,
public final ClassName{
. . .
}
Contoh:
Contoh lain dari final class adalah class wrapper dan String.
public final class Person {
. . .
}
Class dan method final
Method Final
 Method yang tidak bisa di-override
 Untuk mendeklarasikan final method, kita tulis,
public final [returnType] [methodName]
([parameters]){
. . .
}
method static secara otomatis merupakan method
final.
contoh
public final String getName(){
return name;
}
Polymorphism
Polymorphism
Kemampuan sebuah variabel reference untuk merubah
behavior sesuai dengan apa yang dipunyai object.
polymorphism membuat objek-objek yang berasal dari
subclass yang berbeda, diperlakukan sebagai objek-objek dari
satu superclass. Hal ini terjadi ketika memilih method yang
sesuai untuk diimplementasikan ke objek tertentu berdasarkan
pada subclass yang memiliki method bersangkutan.
Untuk menjelaskan polymorphism, mari kita bahas sebuah contoh.
Polymorphism
 Pada contoh sebelumnya, kita diberikan parent class
yaitu Person dan subclassnya adalah Student, sekarang
kita tambahkan subclass lainnya dari Person yaitu
Employee
 Berikut adalah hirarki class nya.
Polymorphism
Dalam Java, kita dapat membuat referensi dari suatu
superclass ke object dari subclassnya. Sebagai contoh,
public static main( String[] args ) {
Person ref;
Student studentObject = new Student();
Employee employeeObject = new Employee();
ref = studentObject; //titik referensi Person kepada
// sebuah object Student
}
Polymorphism
misalnya, kita memiliki sebuah method getName dalam superclass
Person. Dan kita meng-override method ini di kedua subclass yaitu
Student dan Employee
public class Student {
public String getName(){
System.out.println(“Student Name:” + name);
return name;
}
}
public class Employee {
public String getName(){
System.out.println(“Employee Name:” + name);
return name;
}
}
Polymorphism
 Kembali ke method utama kita, ketika kita mencoba
memanggil method getName dari referensi Person ref,
method getName dari object Student akan dipanggil.
 Sekarang, jika kita memberi ref kepada object
Employee, maka method getName juga akan dipanggil
Polymorphism
public static main( String[] args ) {
Person ref;
Student studentObject = new Student();
Employee employeeObject = new Employee();
ref = studentObject; //titik referensi Person kepada object Student
//getName dari class Student dipanggil
String temp=ref.getName();
System.out.println( temp );
ref = employeeObject; //titik referensi Person kepada object Employee
//getName dari class Employee dipanggil
String temp = ref.getName();
System.out.println( temp );
}
Polymorphism
 Contoh lain yang menggambarkan polymorphism
adalah ketika kita mencoba untuk passing reference
kepada method
 jika kita memiliki sebuah method static
printInformation yang menerima referensi Person
sebagai parameter
public static printInformation( Person p ){
. . . .
}
Polymorphism
Sebenarnya kita dapat passing reference dari
Employee dan Student kepada method
printInformation selama kedua class tersebut
merupakan subclass dari Person
public static main( String[] args )
{
Student studentObject = new Student();
Employee employeeObject = new Employee();
printInformation( studentObject );
printInformation( employeeObject );
}
Casting Object
Instance dari class juga dapat di-casting menjadi
instance dari class lain, dengan satu batasan ::
 Class asal dan tujuan harus direlasikan dalam
inheritance, salah satu class harus berupa subclass
dari class lain.
 Casting object digunakan untuk mengkonversi nilai
primitif menuju tipe yang lebih besar, beberapa
object tidak perlu mengalami casting secara
explisit.
Casting Object
Gunakan sintaks berikut untuk casting object,
(classname)object
classname - nama class tujuan
object - reference untuk object asal
Contoh Casting Object
Berikut ini merupakan contoh proses casting sebuah instance dari class
VicePresident ke instance dari class Employee.
VicePresident merupakan subclass dari class Employee dengan beberapa
informasi tambahan.
Employee emp = new Employee();
VicePresident veep = new VicePresident();
emp = veep;
// casting explisit
veep = (VicePresident)emp;
Abstract Class
Abstract class
 Sebuah class yang tidak bisa diinstansiasi
 Sering muncul pada puncak hierarki class object-oriented programming(OOP),
mendefinisikan segala type action/tindakan yang mungkin dengan object semua
subclass dari class
Abstract Class
 Method abstract
 Method di dalam abstract class tidak mempunyai implementasi
 Untuk membuat abstract method, tulis saja deklarasi method tanpa body dan
gunakan keyword abstract
 Sebagai contoh,
public abstract void someMethod();
Contoh Abstract Class
public abstract class LivingThing {
public void breath(){
System.out.println("Living Thing breathing...");
}
public void eat(){
System.out.println("Living Thing eating...");
}
/**
* abstract method walk
* Kita ingin method ini di-overrride oleh subclass dari
* LivingThing
*/
public abstract void walk();
}
Abstract class
 Ketika sebuah class meng-extends abstract class LivingThing,
diwajibkan meng-override abstract method walk(), jika tidak,
subclass tersebut juga akan menjadi abstract class, dan oleh
karena itu tidak bisa diinstansiasi
 Sebagai contoh,
public class Human extends LivingThing {
public void walk(){
System.out.println("Human walks...");
}
}
Petunjuk penulisan program
 Menggunakan abstract class untuk mendefinisi jenis-jenis yang luas dari
behavior yang ada di puncak hirarki class object-oriented programming,
dan menggunakan subclassnya untuk menyediakan detail implementasi dari
abstract class.
interface
interface
 Interface
 Adalah semacam blok spesial yang hanya berisi tanda tangan method (dan
mungkin konstan).
 Menggambarkan tandatangan dari seperangkat method, tanpa body
 Menggambarkan cara standard dan publik penetapan behavior class
 Mengijinkan class,dengan mengabaikan lokasi mereka di dalam hirarki
class untuk menerapkan behavior.
 CATATAN: Interface memperlihatkan polymorphism juga, sejak program
diperbolehkan memanggil sebuah method interface, dan versi yang sesuai
dari method tersebut akan dieksekusi tergantung pada jenis object yang
dilewatkan kepada pemanggilan method interface
Mengapa menggunakan interface?
 Untuk memiliki class yang tidak berhubungan yang mengimplementasikan
method yang sama.
 Contoh:
Class Line dan MyInteger
 Tidak berhubungan
 Keduanya mengimplementasikan method perbandingan
 isGreater
 isLess
 isEqual
Mengapa menggunakan interface?
 Untuk mengungkapkan sebuah interface pemrograman object tanpa
pernyataan classnya
 Untuk model multi inheritance yang mengijinkan sebuah class untuk
memiliki lebih dari satu superclass.
Membuat interface
 Untuk membuat sebuah interface, kita tulis:
public interface [InterfaceName] {
//beberapa method tanpa body
}
Membuat interface
●
Sebagai contoh, mari buat sebuah interface yang
mendefinisikan hubungan antara dua object sesuai dengan
pesanan dari object.
public interface Relation
{
public boolean isGreater( Object a, Object b);
public boolean isLess( Object a, Object b);
public boolean isEqual( Object a, Object b);
}
Membuat interface
●
Untuk menggunakan interface, kita gunakan keyword implements
●
Sebagai contoh,
/**
* Class ini menjelaskan segment garis
*/
public class Line implements Relation {
private double x1;
private double x2;
private double y1;
private double y2;
public Line(double x1, double x2, double y1, double y2){
this.x1 = x1;
this.x2 = x2;
this.y1 = y1;
this.y2 = y2;
}
Membuat interface
public double getLength(){
double length = Math.sqrt((x2-x1)*(x2-x1) +
(y2-y1)* (y2-y1));
return length;
}
public boolean isGreater( Object a, Object b){
double aLen = ((Line)a).getLength();
double bLen = ((Line)b).getLength();
return (aLen > bLen);
}
public boolean isLess( Object a, Object b){
double aLen = ((Line)a).getLength();
double bLen = ((Line)b).getLength();
return (aLen < bLen);
}
public boolean isEqual( Object a, Object b){
double aLen = ((Line)a).getLength();
double bLen = ((Line)b).getLength();
return (aLen == bLen);
}
}
Membuat interface
●
Ketika class Anda mencoba untuk mengimplementasikan
sebuah interface, pastikan selalu bahwa Anda
mengimplementasikan semua method dari interface
tersebut, jika tidak, Anda akan mendapatkan kesalahan ini.
Line.java:4: Line is not abstract and does not override
abstract method
isGreater(java.lang.Object,java.lang.Object) in Relation
public class Line implements Relation
^
1 error
Interface vs. Abstract Class
 Semua interface method tidak memiliki body
 Beberapa Abstract class memiliki method dengan implementasi
 Sebuah interface hanya dapat didefinisikan constant
 Sebuah abstract class tampak seperti class biasa yang dapat
mendeklarasikan variabel.
 Interface tidak memiliki hubungan inheritance secara langsung
dengan setiap class tertentu, mereka didefinisikan secara
independen.
 Abstract class dapat di-subclass-kan
Interface vs. Class
 Persamaan:
 Interface dan class adalah sama-sama sebuah type
 Hal ini berarti bahwa interface dapat digunakan di tempat dimana sebuah
class dapat digunakan
 Sebagai contoh:
PersonInterface pi = new Person();
Person pc = new Person();
 Perbedaan:
 Anda tidak dapat membuat instance dari sebuah interface
 Sebagai contoh:
PersonInterface pi = new PersonInterface(); //ERROR!
Interface vs. Class
●
Persamaan:
− Interface dan class, keduanya dapat mendefinisikan method
●
Perbedaan:
− Interface tidak memiliki segala implementasi dari method
Meng-extends Class vs.
Implementasi interface
●
Sebuah class hanya bisa meng-EXTENDS SATU
superclass, tetapi juga bisa meng-IMPLEMENTASIKAN
BANYAK interface
●
Sebagai contoh:
public class Person implements PersonInterface,
LivingThing,
WhateverInterface {
//beberapa kode disini
}
Meng-extends Class vs.
Implementasi interface
 Contoh lain:
public class ComputerScienceStudent extends Student
implements PersonInterface,
LivingThing {
//Beberapa kode disini
}
Inheritance antar interface
 Interface bukanlah bagian dari hirarki class, bagaimanapun
juga interface dapat memiliki hubungan inheritance antar
mereka sendiri
 Sebagai contoh:
public interface PersonInterface {
. . .
}
public interface StudentInterface extends PersonInterface {
. . .
}
Kesimpulan
 Inheritance (superclass, subclass)
 Menggunakan keyword super untuk mengakses field dan constructor dari
superclass
 Meng-override Method
 Final Method dan Final Class
 Polymorphism (Abstract Class, interface)

Mais conteúdo relacionado

Mais procurados

Konsep Inheritance
Konsep InheritanceKonsep Inheritance
Konsep InheritanceRiski_kiki
 
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Melina Krisnawati
 
Modul prak2 constructor dan overloading
Modul prak2   constructor dan overloadingModul prak2   constructor dan overloading
Modul prak2 constructor dan overloadingwahyuniwulan
 
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Melina Krisnawati
 
Modul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi ObjekModul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi ObjekWahyu Widodo
 
Materi pelatihan java_fundamental
Materi pelatihan java_fundamentalMateri pelatihan java_fundamental
Materi pelatihan java_fundamentalLaode ADB Ali
 
Dasar pemrograman C++
Dasar pemrograman C++Dasar pemrograman C++
Dasar pemrograman C++Andan Sperrow
 
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan hermawanawang
 
Jeni Intro1 Bab10 Membuat Class Sendiri
Jeni Intro1 Bab10 Membuat Class SendiriJeni Intro1 Bab10 Membuat Class Sendiri
Jeni Intro1 Bab10 Membuat Class SendiriIndividual Consultants
 
Laporan PBO Pratikum 3
Laporan PBO Pratikum 3Laporan PBO Pratikum 3
Laporan PBO Pratikum 3rahmi wahyuni
 
Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Modul PBO Bab-06 - Polimorfisme (Polymorphism)Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Modul PBO Bab-06 - Polimorfisme (Polymorphism)Rakhmat Dedi Gunawan
 
Java (Netbeans) - Abstract & Interface - Object Oriented Programming
Java (Netbeans) - Abstract & Interface - Object Oriented ProgrammingJava (Netbeans) - Abstract & Interface - Object Oriented Programming
Java (Netbeans) - Abstract & Interface - Object Oriented ProgrammingMelina Krisnawati
 
Network programming 03- Pemrograman Java Lanjutan
Network programming 03- Pemrograman Java LanjutanNetwork programming 03- Pemrograman Java Lanjutan
Network programming 03- Pemrograman Java LanjutanLia Rusdyana Dewi
 
12. keuntungan pemograman dengan menggunakan polymorphism
12. keuntungan pemograman dengan menggunakan polymorphism12. keuntungan pemograman dengan menggunakan polymorphism
12. keuntungan pemograman dengan menggunakan polymorphismSaprudin Eskom
 

Mais procurados (18)

Konsep Inheritance
Konsep InheritanceKonsep Inheritance
Konsep Inheritance
 
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
 
Modul prak2 constructor dan overloading
Modul prak2   constructor dan overloadingModul prak2   constructor dan overloading
Modul prak2 constructor dan overloading
 
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
 
Modul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi ObjekModul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi Objek
 
Materi pelatihan java_fundamental
Materi pelatihan java_fundamentalMateri pelatihan java_fundamental
Materi pelatihan java_fundamental
 
Materi pelatihan java fundamental
Materi pelatihan java fundamentalMateri pelatihan java fundamental
Materi pelatihan java fundamental
 
Dasar pemrograman C++
Dasar pemrograman C++Dasar pemrograman C++
Dasar pemrograman C++
 
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
 
Jeni Intro1 Bab10 Membuat Class Sendiri
Jeni Intro1 Bab10 Membuat Class SendiriJeni Intro1 Bab10 Membuat Class Sendiri
Jeni Intro1 Bab10 Membuat Class Sendiri
 
Laporan PBO Modul 4
Laporan PBO Modul 4Laporan PBO Modul 4
Laporan PBO Modul 4
 
Laporan PBO Pratikum 3
Laporan PBO Pratikum 3Laporan PBO Pratikum 3
Laporan PBO Pratikum 3
 
31322 2 class & object
31322 2 class & object31322 2 class & object
31322 2 class & object
 
11. inheritance
11. inheritance11. inheritance
11. inheritance
 
Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Modul PBO Bab-06 - Polimorfisme (Polymorphism)Modul PBO Bab-06 - Polimorfisme (Polymorphism)
Modul PBO Bab-06 - Polimorfisme (Polymorphism)
 
Java (Netbeans) - Abstract & Interface - Object Oriented Programming
Java (Netbeans) - Abstract & Interface - Object Oriented ProgrammingJava (Netbeans) - Abstract & Interface - Object Oriented Programming
Java (Netbeans) - Abstract & Interface - Object Oriented Programming
 
Network programming 03- Pemrograman Java Lanjutan
Network programming 03- Pemrograman Java LanjutanNetwork programming 03- Pemrograman Java Lanjutan
Network programming 03- Pemrograman Java Lanjutan
 
12. keuntungan pemograman dengan menggunakan polymorphism
12. keuntungan pemograman dengan menggunakan polymorphism12. keuntungan pemograman dengan menggunakan polymorphism
12. keuntungan pemograman dengan menggunakan polymorphism
 

Destaque

Dasar Pemrogaman Algoritma
Dasar Pemrogaman AlgoritmaDasar Pemrogaman Algoritma
Dasar Pemrogaman AlgoritmaKhairul Anwar
 
RPP KLS.12 sem 5 TP. 2014-2015
RPP KLS.12 sem 5  TP. 2014-2015RPP KLS.12 sem 5  TP. 2014-2015
RPP KLS.12 sem 5 TP. 2014-2015Puri Cikgu
 
Pengantar Algoritma Dan Program
Pengantar Algoritma Dan ProgramPengantar Algoritma Dan Program
Pengantar Algoritma Dan ProgramAkmal Fajar
 
Rpp membuat basis data menggunakan sql
Rpp membuat basis data menggunakan sqlRpp membuat basis data menggunakan sql
Rpp membuat basis data menggunakan sqlSmkn-2 Pekanbaru
 
Rpp basis data kelas 11 semester ganjil
Rpp basis data kelas 11 semester ganjilRpp basis data kelas 11 semester ganjil
Rpp basis data kelas 11 semester ganjilSaprudin Eskom
 
Rpp pemrograman dasar kelas 10 semester ganjil
Rpp pemrograman dasar kelas 10 semester ganjilRpp pemrograman dasar kelas 10 semester ganjil
Rpp pemrograman dasar kelas 10 semester ganjilSaprudin Eskom
 
Rpp pemrograman dasar kelas 10 semester genap
Rpp pemrograman dasar kelas 10 semester genapRpp pemrograman dasar kelas 10 semester genap
Rpp pemrograman dasar kelas 10 semester genapSaprudin Eskom
 

Destaque (8)

Dasar Pemrogaman Algoritma
Dasar Pemrogaman AlgoritmaDasar Pemrogaman Algoritma
Dasar Pemrogaman Algoritma
 
RPP KLS.12 sem 5 TP. 2014-2015
RPP KLS.12 sem 5  TP. 2014-2015RPP KLS.12 sem 5  TP. 2014-2015
RPP KLS.12 sem 5 TP. 2014-2015
 
Pengantar Algoritma Dan Program
Pengantar Algoritma Dan ProgramPengantar Algoritma Dan Program
Pengantar Algoritma Dan Program
 
Rpp membuat basis data menggunakan sql
Rpp membuat basis data menggunakan sqlRpp membuat basis data menggunakan sql
Rpp membuat basis data menggunakan sql
 
Rpp basis data kelas 11 semester ganjil
Rpp basis data kelas 11 semester ganjilRpp basis data kelas 11 semester ganjil
Rpp basis data kelas 11 semester ganjil
 
Rpp pemrograman dasar
Rpp pemrograman dasarRpp pemrograman dasar
Rpp pemrograman dasar
 
Rpp pemrograman dasar kelas 10 semester ganjil
Rpp pemrograman dasar kelas 10 semester ganjilRpp pemrograman dasar kelas 10 semester ganjil
Rpp pemrograman dasar kelas 10 semester ganjil
 
Rpp pemrograman dasar kelas 10 semester genap
Rpp pemrograman dasar kelas 10 semester genapRpp pemrograman dasar kelas 10 semester genap
Rpp pemrograman dasar kelas 10 semester genap
 

Semelhante a Pbo inheritance, polymorphism, dan inte

Jeni intro1-bab11-pewarisan, polimorfisme, dan interface
Jeni intro1-bab11-pewarisan, polimorfisme, dan interfaceJeni intro1-bab11-pewarisan, polimorfisme, dan interface
Jeni intro1-bab11-pewarisan, polimorfisme, dan interfaceKristanto Wijaya
 
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdfJENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdfJurnal IT
 
Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)Rakhmat Dedi Gunawan
 
JENI-Intro1-Bab10-Membuat class sendiri.pdf
JENI-Intro1-Bab10-Membuat class sendiri.pdfJENI-Intro1-Bab10-Membuat class sendiri.pdf
JENI-Intro1-Bab10-Membuat class sendiri.pdfJurnal IT
 
Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2rahmi wahyuni
 
Object Oriented Programming Concept
Object Oriented Programming Concept Object Oriented Programming Concept
Object Oriented Programming Concept EsterLumba
 
Jeni intro1-bab10-membuat class sendiri
Jeni intro1-bab10-membuat class sendiriJeni intro1-bab10-membuat class sendiri
Jeni intro1-bab10-membuat class sendiriKristanto Wijaya
 
Jeni Intro1 Bab10 Membuat Class Sendiri
Jeni Intro1 Bab10 Membuat Class SendiriJeni Intro1 Bab10 Membuat Class Sendiri
Jeni Intro1 Bab10 Membuat Class SendiriIndividual Consultants
 
Tugas 5 individu rekayasa web 0316
Tugas 5 individu rekayasa web 0316Tugas 5 individu rekayasa web 0316
Tugas 5 individu rekayasa web 0316septianarul
 
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptxpertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptxssuserc54f06
 
Pemrograman Java - Inheritance
Pemrograman Java - InheritancePemrograman Java - Inheritance
Pemrograman Java - InheritanceDevi Nufriana
 
Konsep Overloading (1).pptx
Konsep Overloading (1).pptxKonsep Overloading (1).pptx
Konsep Overloading (1).pptxAsepKhabrilRifao
 
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Rakhmat Dedi Gunawan
 
OOP - Inheritance
OOP - InheritanceOOP - Inheritance
OOP - InheritanceKuliahKita
 

Semelhante a Pbo inheritance, polymorphism, dan inte (20)

Jeni intro1-bab11-pewarisan, polimorfisme, dan interface
Jeni intro1-bab11-pewarisan, polimorfisme, dan interfaceJeni intro1-bab11-pewarisan, polimorfisme, dan interface
Jeni intro1-bab11-pewarisan, polimorfisme, dan interface
 
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdfJENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
JENI-Intro1-Bab11-Pewarisan, Polimorfisme, dan interface.pdf
 
365 4 inheritance
365 4 inheritance365 4 inheritance
365 4 inheritance
 
Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)Modul PBO Bab-05 - Pewarisan (Inheritance)
Modul PBO Bab-05 - Pewarisan (Inheritance)
 
JENI-Intro1-Bab10-Membuat class sendiri.pdf
JENI-Intro1-Bab10-Membuat class sendiri.pdfJENI-Intro1-Bab10-Membuat class sendiri.pdf
JENI-Intro1-Bab10-Membuat class sendiri.pdf
 
Modul Object Oriented Programming
Modul Object Oriented ProgrammingModul Object Oriented Programming
Modul Object Oriented Programming
 
Laporan PBO pratikum 2
Laporan PBO pratikum 2Laporan PBO pratikum 2
Laporan PBO pratikum 2
 
17419 6 override
17419 6 override17419 6 override
17419 6 override
 
mf488_10_092649.ppt
mf488_10_092649.pptmf488_10_092649.ppt
mf488_10_092649.ppt
 
Object Oriented Programming Concept
Object Oriented Programming Concept Object Oriented Programming Concept
Object Oriented Programming Concept
 
Jeni intro1-bab10-membuat class sendiri
Jeni intro1-bab10-membuat class sendiriJeni intro1-bab10-membuat class sendiri
Jeni intro1-bab10-membuat class sendiri
 
Jeni Intro1 Bab10 Membuat Class Sendiri
Jeni Intro1 Bab10 Membuat Class SendiriJeni Intro1 Bab10 Membuat Class Sendiri
Jeni Intro1 Bab10 Membuat Class Sendiri
 
Tugas 5 individu rekayasa web 0316
Tugas 5 individu rekayasa web 0316Tugas 5 individu rekayasa web 0316
Tugas 5 individu rekayasa web 0316
 
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptxpertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
pertemuan_06_-_Konsep_PBO(InheratanceMultiple_Inheratance_Polimorpisme.pptx
 
Pemrograman Java - Inheritance
Pemrograman Java - InheritancePemrograman Java - Inheritance
Pemrograman Java - Inheritance
 
Konsep Overloading (1).pptx
Konsep Overloading (1).pptxKonsep Overloading (1).pptx
Konsep Overloading (1).pptx
 
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
Modul PBO Bab-07 - Enkapsulasi (Encapsulation)
 
OOP - Inheritance
OOP - InheritanceOOP - Inheritance
OOP - Inheritance
 
Polymorphisme
PolymorphismePolymorphisme
Polymorphisme
 
Moduloop
ModuloopModuloop
Moduloop
 

Mais de Smkn-2 Pekanbaru

1.tki rpl-c3-silb-xi-pemodelan pl-rev
1.tki rpl-c3-silb-xi-pemodelan pl-rev1.tki rpl-c3-silb-xi-pemodelan pl-rev
1.tki rpl-c3-silb-xi-pemodelan pl-revSmkn-2 Pekanbaru
 
14.tki c2-kikd-x-simulasi digital
14.tki c2-kikd-x-simulasi digital14.tki c2-kikd-x-simulasi digital
14.tki c2-kikd-x-simulasi digitalSmkn-2 Pekanbaru
 
Rpp membuat aplikasi basis data menggunakan sql kd3
Rpp membuat aplikasi basis data menggunakan sql kd3Rpp membuat aplikasi basis data menggunakan sql kd3
Rpp membuat aplikasi basis data menggunakan sql kd3Smkn-2 Pekanbaru
 
Rpp membuat aplikasi basis data menggunakan sql KD2
Rpp membuat aplikasi basis data menggunakan sql KD2Rpp membuat aplikasi basis data menggunakan sql KD2
Rpp membuat aplikasi basis data menggunakan sql KD2Smkn-2 Pekanbaru
 

Mais de Smkn-2 Pekanbaru (6)

1.tki rpl-c3-silb-xi-pemodelan pl-rev
1.tki rpl-c3-silb-xi-pemodelan pl-rev1.tki rpl-c3-silb-xi-pemodelan pl-rev
1.tki rpl-c3-silb-xi-pemodelan pl-rev
 
14.tki c2-kikd-x-simulasi digital
14.tki c2-kikd-x-simulasi digital14.tki c2-kikd-x-simulasi digital
14.tki c2-kikd-x-simulasi digital
 
Jobsheet mysql
Jobsheet mysqlJobsheet mysql
Jobsheet mysql
 
Rpp membuat aplikasi basis data menggunakan sql kd3
Rpp membuat aplikasi basis data menggunakan sql kd3Rpp membuat aplikasi basis data menggunakan sql kd3
Rpp membuat aplikasi basis data menggunakan sql kd3
 
Rpp membuat aplikasi basis data menggunakan sql KD2
Rpp membuat aplikasi basis data menggunakan sql KD2Rpp membuat aplikasi basis data menggunakan sql KD2
Rpp membuat aplikasi basis data menggunakan sql KD2
 
Kuis elearning
Kuis elearningKuis elearning
Kuis elearning
 

Último

Materi Asesi SKK Manajer Pelaksana SPAM- jenjang 6.pptx
Materi Asesi SKK Manajer Pelaksana SPAM- jenjang 6.pptxMateri Asesi SKK Manajer Pelaksana SPAM- jenjang 6.pptx
Materi Asesi SKK Manajer Pelaksana SPAM- jenjang 6.pptxarifyudianto3
 
MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++FujiAdam
 
MODUL AJAR PENGANTAR SURVEY PEMETAAN.pdf
MODUL AJAR PENGANTAR SURVEY PEMETAAN.pdfMODUL AJAR PENGANTAR SURVEY PEMETAAN.pdf
MODUL AJAR PENGANTAR SURVEY PEMETAAN.pdfihsan386426
 
Manual Desain Perkerasan jalan 2017 FINAL.pptx
Manual Desain Perkerasan jalan 2017 FINAL.pptxManual Desain Perkerasan jalan 2017 FINAL.pptx
Manual Desain Perkerasan jalan 2017 FINAL.pptxRemigius1984
 
Metode numerik Bidang Teknik Sipil perencanaan.pdf
Metode numerik Bidang Teknik Sipil perencanaan.pdfMetode numerik Bidang Teknik Sipil perencanaan.pdf
Metode numerik Bidang Teknik Sipil perencanaan.pdfArvinThamsir1
 
4. GWTJWRYJJJJJJJJJJJJJJJJJJWJSNJYSRR.pdf
4. GWTJWRYJJJJJJJJJJJJJJJJJJWJSNJYSRR.pdf4. GWTJWRYJJJJJJJJJJJJJJJJJJWJSNJYSRR.pdf
4. GWTJWRYJJJJJJJJJJJJJJJJJJWJSNJYSRR.pdfAnonymous6yIobha8QY
 
Strategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaStrategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaRenaYunita2
 
10.-Programable-Logic-Controller (1).ppt
10.-Programable-Logic-Controller (1).ppt10.-Programable-Logic-Controller (1).ppt
10.-Programable-Logic-Controller (1).ppttaniaalda710
 
TEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdf
TEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdfTEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdf
TEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdfYogiCahyoPurnomo
 

Último (9)

Materi Asesi SKK Manajer Pelaksana SPAM- jenjang 6.pptx
Materi Asesi SKK Manajer Pelaksana SPAM- jenjang 6.pptxMateri Asesi SKK Manajer Pelaksana SPAM- jenjang 6.pptx
Materi Asesi SKK Manajer Pelaksana SPAM- jenjang 6.pptx
 
MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++
 
MODUL AJAR PENGANTAR SURVEY PEMETAAN.pdf
MODUL AJAR PENGANTAR SURVEY PEMETAAN.pdfMODUL AJAR PENGANTAR SURVEY PEMETAAN.pdf
MODUL AJAR PENGANTAR SURVEY PEMETAAN.pdf
 
Manual Desain Perkerasan jalan 2017 FINAL.pptx
Manual Desain Perkerasan jalan 2017 FINAL.pptxManual Desain Perkerasan jalan 2017 FINAL.pptx
Manual Desain Perkerasan jalan 2017 FINAL.pptx
 
Metode numerik Bidang Teknik Sipil perencanaan.pdf
Metode numerik Bidang Teknik Sipil perencanaan.pdfMetode numerik Bidang Teknik Sipil perencanaan.pdf
Metode numerik Bidang Teknik Sipil perencanaan.pdf
 
4. GWTJWRYJJJJJJJJJJJJJJJJJJWJSNJYSRR.pdf
4. GWTJWRYJJJJJJJJJJJJJJJJJJWJSNJYSRR.pdf4. GWTJWRYJJJJJJJJJJJJJJJJJJWJSNJYSRR.pdf
4. GWTJWRYJJJJJJJJJJJJJJJJJJWJSNJYSRR.pdf
 
Strategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaStrategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di Indonesia
 
10.-Programable-Logic-Controller (1).ppt
10.-Programable-Logic-Controller (1).ppt10.-Programable-Logic-Controller (1).ppt
10.-Programable-Logic-Controller (1).ppt
 
TEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdf
TEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdfTEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdf
TEKNIS TES TULIS REKRUTMEN PAMSIMAS 2024.pdf
 

Pbo inheritance, polymorphism, dan inte

  • 1. Inheritance, polymorphism, danInheritance, polymorphism, dan interfaceinterface
  • 2. Tujuan Pada akhir pembahasan, peserta diharapkan mampu untuk :  Mendeskripsikan superclass dan subclass  Melakukan override method dari superclass  Membuat final method dan final class  Polymorphism (abstract class, interface)
  • 3. Pewarisan (inheritance) Semua class dalam Java, termasuk class yang membangun Java API, merupakan subclass dari superclass Object. Contoh dari hierarki class :
  • 4. Pewarisan (inheritance) Superclass class yang letaknya di atas class tertentu di dalam hierarki. Subclass class yang letaknya di bawah class tertentu di dalam hierarki.
  • 5. Pewarisan (inheritance) Keuntungan penggunaan Inheritance dalam OOP : Reusability  Ketika behavior(method) dideklarasikan dalam superclass, behavior tersebut otomatis diwariskan ke seluruh subclass  Jadi, Anda dapat meng-enkode method hanya sekali dan method tersebut dapat digunakan oleh seluruh subclass  Sebuah subclass hanya perlu mengimplementasikan perbedaan antara dirinya sendiri dan parent-nya
  • 6. Pewarisan (inheritance)  Untuk mengambil sebuah class, gunakan keyword extends.  Untuk lebih jelasnya, mari buat class parent sederhana, misalkan kita mempunyai class parent bernama Person. public class Person { protected String name; protected String address; /** * Default constructor */ public Person(){ System.out.println(“Inside Person:Constructor”); name = ""; address = ""; } . . . . }
  • 7. Pewarisan (inheritance)  Sekarang, kita buat class lain bernama Student  Karena murid juga termasuk orang, kita putuskan untuk meng-extend class Person, sehingga kita dapat mewariskan semua properti dan method yang telah ada di class Person.  Untuk itu, kita bisa menulis : public class Student extends Person { public Student(){ System.out.println(“Inside Student:Constructor”); } . . . . }
  • 8. Pewarisan (inheritance)  Ketika sebuah object Student diinstansiasi, default constructor dari superclass Student dipanggil secara implisit untuk melakukan inisialisasi seperlunya.  Setelah itu, pernyataan di dalam constructor subclass dijalankan.
  • 9. Pewarisan (inheritance)  Untuk memperjelasnya, perhatikan kode dibawah ini,  Dalam kode ini, kita membuat sebuah object dari class Student. Hasil dari program adalah: public static void main( String[] args ){ Student anna = new Student(); } Inside Person:Constructor Inside Student:Constructor
  • 10. Pewarisan (inheritance) Flowchart program ditampilkan dibawah ini :
  • 11. Keyword “super”  Sebuah subclass dapat juga memanggil secara eksplisit sebuah constructor superclass yang ada diatasnya.  Dapat dilakukan dengan menggunakan pemanggilan constructor super.  Pemanggilan constructor super didalam constructor subclass akan mengakibatkan eksekusi dalam constructor yang relevan dari superclass, berdasarkan passing argument-nya.
  • 12. Keyword “super”  Sebagai contoh, pada contoh sebelumnya yaitu class Person dan Student, kita tunjukkan sebuah contoh pemanggilan constructor super.  Tuliskan kode berikut untuk class Student public Student(){ super( "SomeName", "SomeAddress" ); System.out.println("Inside Student:Constructor"); }
  • 13. Keyword “super” Beberapa hal untuk diingat ketika menggunakan pemanggilan constructor super :  Pemanggilan super() HARUS DIJALANKAN SESUAI DENGAN STATEMENT PERTAMA DALAM SEBUAH CONSTRUCTOR.  Pemanggilan super() hanya dapat digunakan di dalam definisi constructor.  Hal ini menjelaskan bahwa constructor this() dan pemanggilan super() TIDAK DAPAT DIJALANKAN SECARA BERSAMAAN DI DALAM CONSTRUCTOR YANG SAMA.
  • 14. Keyword “super” Penggunaan lainnya dari super mengarah pada member dari superclass. Sebagai contoh, public Student() { super.name = “somename”; super.address = “some address”; }
  • 15. Meng-override method  Jika sebuah subclass menginginkan implementasi yang berbeda terhadap method dari superclassnya, maka salah satu caranya dapat dilakukan dengan meng- override method bersangkutan.  Sebuah subclass dapat meng-override method superclassnya dengan menyediakan sebuah implementasi baru untuk method tersebut.
  • 16. contoh berikut ini merupakan implementasi dari method getName didalam superclass Person public class Person { : : public String getName(){ System.out.println("Parent: getName"); return name; } }
  • 17. contoh  Untuk meng-override method getName dari superclass Person, di dalam subclass Student, kita tulis :  Sekarang, ketika kita memanggil method getName dari object subclass Student, method getName yang di-override akan dipanggil, dan hasilnya akan menjadi, public class Student extends Person{ : : public String getName(){ System.out.println("Student: getName"); return name; } : } Student: getName
  • 18. Class final Final Class  Class yang tidak bisa di-extends  Untuk mendeklarasikan final class, kita tulis, public final ClassName{ . . . } Contoh: Contoh lain dari final class adalah class wrapper dan String. public final class Person { . . . }
  • 19. Class dan method final Method Final  Method yang tidak bisa di-override  Untuk mendeklarasikan final method, kita tulis, public final [returnType] [methodName] ([parameters]){ . . . } method static secara otomatis merupakan method final.
  • 20. contoh public final String getName(){ return name; }
  • 21. Polymorphism Polymorphism Kemampuan sebuah variabel reference untuk merubah behavior sesuai dengan apa yang dipunyai object. polymorphism membuat objek-objek yang berasal dari subclass yang berbeda, diperlakukan sebagai objek-objek dari satu superclass. Hal ini terjadi ketika memilih method yang sesuai untuk diimplementasikan ke objek tertentu berdasarkan pada subclass yang memiliki method bersangkutan. Untuk menjelaskan polymorphism, mari kita bahas sebuah contoh.
  • 22. Polymorphism  Pada contoh sebelumnya, kita diberikan parent class yaitu Person dan subclassnya adalah Student, sekarang kita tambahkan subclass lainnya dari Person yaitu Employee  Berikut adalah hirarki class nya.
  • 23. Polymorphism Dalam Java, kita dapat membuat referensi dari suatu superclass ke object dari subclassnya. Sebagai contoh, public static main( String[] args ) { Person ref; Student studentObject = new Student(); Employee employeeObject = new Employee(); ref = studentObject; //titik referensi Person kepada // sebuah object Student }
  • 24. Polymorphism misalnya, kita memiliki sebuah method getName dalam superclass Person. Dan kita meng-override method ini di kedua subclass yaitu Student dan Employee public class Student { public String getName(){ System.out.println(“Student Name:” + name); return name; } } public class Employee { public String getName(){ System.out.println(“Employee Name:” + name); return name; } }
  • 25. Polymorphism  Kembali ke method utama kita, ketika kita mencoba memanggil method getName dari referensi Person ref, method getName dari object Student akan dipanggil.  Sekarang, jika kita memberi ref kepada object Employee, maka method getName juga akan dipanggil
  • 26. Polymorphism public static main( String[] args ) { Person ref; Student studentObject = new Student(); Employee employeeObject = new Employee(); ref = studentObject; //titik referensi Person kepada object Student //getName dari class Student dipanggil String temp=ref.getName(); System.out.println( temp ); ref = employeeObject; //titik referensi Person kepada object Employee //getName dari class Employee dipanggil String temp = ref.getName(); System.out.println( temp ); }
  • 27. Polymorphism  Contoh lain yang menggambarkan polymorphism adalah ketika kita mencoba untuk passing reference kepada method  jika kita memiliki sebuah method static printInformation yang menerima referensi Person sebagai parameter public static printInformation( Person p ){ . . . . }
  • 28. Polymorphism Sebenarnya kita dapat passing reference dari Employee dan Student kepada method printInformation selama kedua class tersebut merupakan subclass dari Person public static main( String[] args ) { Student studentObject = new Student(); Employee employeeObject = new Employee(); printInformation( studentObject ); printInformation( employeeObject ); }
  • 29. Casting Object Instance dari class juga dapat di-casting menjadi instance dari class lain, dengan satu batasan ::  Class asal dan tujuan harus direlasikan dalam inheritance, salah satu class harus berupa subclass dari class lain.  Casting object digunakan untuk mengkonversi nilai primitif menuju tipe yang lebih besar, beberapa object tidak perlu mengalami casting secara explisit.
  • 30. Casting Object Gunakan sintaks berikut untuk casting object, (classname)object classname - nama class tujuan object - reference untuk object asal
  • 31. Contoh Casting Object Berikut ini merupakan contoh proses casting sebuah instance dari class VicePresident ke instance dari class Employee. VicePresident merupakan subclass dari class Employee dengan beberapa informasi tambahan. Employee emp = new Employee(); VicePresident veep = new VicePresident(); emp = veep; // casting explisit veep = (VicePresident)emp;
  • 32. Abstract Class Abstract class  Sebuah class yang tidak bisa diinstansiasi  Sering muncul pada puncak hierarki class object-oriented programming(OOP), mendefinisikan segala type action/tindakan yang mungkin dengan object semua subclass dari class
  • 33. Abstract Class  Method abstract  Method di dalam abstract class tidak mempunyai implementasi  Untuk membuat abstract method, tulis saja deklarasi method tanpa body dan gunakan keyword abstract  Sebagai contoh, public abstract void someMethod();
  • 34. Contoh Abstract Class public abstract class LivingThing { public void breath(){ System.out.println("Living Thing breathing..."); } public void eat(){ System.out.println("Living Thing eating..."); } /** * abstract method walk * Kita ingin method ini di-overrride oleh subclass dari * LivingThing */ public abstract void walk(); }
  • 35. Abstract class  Ketika sebuah class meng-extends abstract class LivingThing, diwajibkan meng-override abstract method walk(), jika tidak, subclass tersebut juga akan menjadi abstract class, dan oleh karena itu tidak bisa diinstansiasi  Sebagai contoh, public class Human extends LivingThing { public void walk(){ System.out.println("Human walks..."); } }
  • 36. Petunjuk penulisan program  Menggunakan abstract class untuk mendefinisi jenis-jenis yang luas dari behavior yang ada di puncak hirarki class object-oriented programming, dan menggunakan subclassnya untuk menyediakan detail implementasi dari abstract class.
  • 38. interface  Interface  Adalah semacam blok spesial yang hanya berisi tanda tangan method (dan mungkin konstan).  Menggambarkan tandatangan dari seperangkat method, tanpa body  Menggambarkan cara standard dan publik penetapan behavior class  Mengijinkan class,dengan mengabaikan lokasi mereka di dalam hirarki class untuk menerapkan behavior.  CATATAN: Interface memperlihatkan polymorphism juga, sejak program diperbolehkan memanggil sebuah method interface, dan versi yang sesuai dari method tersebut akan dieksekusi tergantung pada jenis object yang dilewatkan kepada pemanggilan method interface
  • 39. Mengapa menggunakan interface?  Untuk memiliki class yang tidak berhubungan yang mengimplementasikan method yang sama.  Contoh: Class Line dan MyInteger  Tidak berhubungan  Keduanya mengimplementasikan method perbandingan  isGreater  isLess  isEqual
  • 40. Mengapa menggunakan interface?  Untuk mengungkapkan sebuah interface pemrograman object tanpa pernyataan classnya  Untuk model multi inheritance yang mengijinkan sebuah class untuk memiliki lebih dari satu superclass.
  • 41. Membuat interface  Untuk membuat sebuah interface, kita tulis: public interface [InterfaceName] { //beberapa method tanpa body }
  • 42. Membuat interface ● Sebagai contoh, mari buat sebuah interface yang mendefinisikan hubungan antara dua object sesuai dengan pesanan dari object. public interface Relation { public boolean isGreater( Object a, Object b); public boolean isLess( Object a, Object b); public boolean isEqual( Object a, Object b); }
  • 43. Membuat interface ● Untuk menggunakan interface, kita gunakan keyword implements ● Sebagai contoh, /** * Class ini menjelaskan segment garis */ public class Line implements Relation { private double x1; private double x2; private double y1; private double y2; public Line(double x1, double x2, double y1, double y2){ this.x1 = x1; this.x2 = x2; this.y1 = y1; this.y2 = y2; }
  • 44. Membuat interface public double getLength(){ double length = Math.sqrt((x2-x1)*(x2-x1) + (y2-y1)* (y2-y1)); return length; } public boolean isGreater( Object a, Object b){ double aLen = ((Line)a).getLength(); double bLen = ((Line)b).getLength(); return (aLen > bLen); } public boolean isLess( Object a, Object b){ double aLen = ((Line)a).getLength(); double bLen = ((Line)b).getLength(); return (aLen < bLen); } public boolean isEqual( Object a, Object b){ double aLen = ((Line)a).getLength(); double bLen = ((Line)b).getLength(); return (aLen == bLen); } }
  • 45. Membuat interface ● Ketika class Anda mencoba untuk mengimplementasikan sebuah interface, pastikan selalu bahwa Anda mengimplementasikan semua method dari interface tersebut, jika tidak, Anda akan mendapatkan kesalahan ini. Line.java:4: Line is not abstract and does not override abstract method isGreater(java.lang.Object,java.lang.Object) in Relation public class Line implements Relation ^ 1 error
  • 46. Interface vs. Abstract Class  Semua interface method tidak memiliki body  Beberapa Abstract class memiliki method dengan implementasi  Sebuah interface hanya dapat didefinisikan constant  Sebuah abstract class tampak seperti class biasa yang dapat mendeklarasikan variabel.  Interface tidak memiliki hubungan inheritance secara langsung dengan setiap class tertentu, mereka didefinisikan secara independen.  Abstract class dapat di-subclass-kan
  • 47. Interface vs. Class  Persamaan:  Interface dan class adalah sama-sama sebuah type  Hal ini berarti bahwa interface dapat digunakan di tempat dimana sebuah class dapat digunakan  Sebagai contoh: PersonInterface pi = new Person(); Person pc = new Person();  Perbedaan:  Anda tidak dapat membuat instance dari sebuah interface  Sebagai contoh: PersonInterface pi = new PersonInterface(); //ERROR!
  • 48. Interface vs. Class ● Persamaan: − Interface dan class, keduanya dapat mendefinisikan method ● Perbedaan: − Interface tidak memiliki segala implementasi dari method
  • 49. Meng-extends Class vs. Implementasi interface ● Sebuah class hanya bisa meng-EXTENDS SATU superclass, tetapi juga bisa meng-IMPLEMENTASIKAN BANYAK interface ● Sebagai contoh: public class Person implements PersonInterface, LivingThing, WhateverInterface { //beberapa kode disini }
  • 50. Meng-extends Class vs. Implementasi interface  Contoh lain: public class ComputerScienceStudent extends Student implements PersonInterface, LivingThing { //Beberapa kode disini }
  • 51. Inheritance antar interface  Interface bukanlah bagian dari hirarki class, bagaimanapun juga interface dapat memiliki hubungan inheritance antar mereka sendiri  Sebagai contoh: public interface PersonInterface { . . . } public interface StudentInterface extends PersonInterface { . . . }
  • 52. Kesimpulan  Inheritance (superclass, subclass)  Menggunakan keyword super untuk mengakses field dan constructor dari superclass  Meng-override Method  Final Method dan Final Class  Polymorphism (Abstract Class, interface)