Tutorial Inheritance

dokumen-dokumen yang mirip
Inheritance (Pewarisan) Pengertian dasar inheritance

Overriding. Subclass yang berusaha memodifikasi tingkah laku yang diwarisi dari superclass. Tujuan: subclass memiliki tingkah laku yang lebih

PERTEMUAN 5 OOP. Objektif : Praktikan mengetahui konsep OOP. Praktikan dapat membuat program sederhana dengan konsep OOP.

Apa yang menjadi output potongan kode diatas? Error karena tidak ada String yang di-passing kedalam konstruktor Bapak

5/23/12. Inheritance. Pengertian inheritance Deklarasi inheritance Single inheritance Multilevel inheritance Access Control super keyword

Bahasa Pemrograman :: Polimorfism and Abstraction

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

1. Keyword mana yang memiliki fungsi sama dengan keyword this dan menyediakan reference ke atribut turunan dari objek? super

Pemrograman Berorientasi. Inheritance

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

Pertemuan 4 Halaman 1/1. Class Inheritance

Pemrograman Berorientasi. Polimorfisme dan Binding

Inheritance dan Kata Kunci static

3/31/2011. Tujuan. Inheritance, Polymorphism,& Interfaces. Inheritance / pewarisan. Inheritance / pewarisan. Inheritance / pewarisan

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

Bahasa Pemrograman 2.

Pemrograman Berorientasi Objek Danu Wira Pangestu

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

Inheritance. Topik 5/17/2013

Pemrograman Berbasis Objek Inheritance

Overriding, Overloading, Polymorphism. Pertemuan 10 Pemrograman Berbasis Obyek Dr. Rodiah

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance

subclass class manapun private default protected public package yang sama

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

Composition dan Inheritance

1.Tujuan. 2. Latar Belakang. Mendefinisikan superclasses dan subclasses Override method dari superclasses Membuat method final dan class final

Polymorphism (Polimorfisme)

LAPORAN RESMI INHERITANCE

Pemrograman Berorientasi. Class dan Obyek 2

Pemrograman Berorientasi Objek

IKG2I4 / Software Project I

Jobsheet 09. Overloading and Overriding Method

Overriding Overloading Polymorphism

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

PEMROGRAMAN BERORIENTASI OBJEK

Modul Bahasa Pemrograman 1

(INHERITANCE) Nurochman

PEWARISAN D E W I S A R T I K A, M. K O M

INTERAKSI ANTAR OBJECT

Employee employee=new Manager();

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

CSG2H3 Object Oriented Programming. Polymorphism -RSM-

Membuat dan Menggunakan Class

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

Pemrograman Lanjut Review Class dan Object PTIIK

Bahasa Pemrograman :: Inheritance

Praktikum 3 Konsep Class, Attribute dan Method

Polymorphism. Oleh : Agus Priyanto, M.Kom

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Gambar 1: Hirarki class

INHERITANCE. Gambar 1. Kelas Hierarki Java

Pewarisan Sifat Objek. Nur Hasanah, M.Cs

8 - Overriding dan Overloading

BAB 6 INHERITANCE Tujuan:

Like mother, like daughter... [common saying]

UNIVERSITAS GUNADARMA

OVERLOADING, CONSTRUCTOR DAN DESTRUCTOR. Dewi Sartika, M.Kom

Pewarisan, Polimorfisme, dan Interface

Keyword this untuk memanggil private String pengarang; private String judul;

Overriding Method Overloading Method Class(iii) [Superclass and subclass] [constructor overloading] Keyword Super

Inheritance (Pewarisan Sifat) Imam Fahrur Rozi

Class dan Object. PBO/Java/Ayuliana/Revisi

OOP Java. 05 Encapsulation & Inheritance

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

Pemrograman Berorientasi Objek / Object Oriented Programming / (OOP) Nur Hasanah, M.Cs

KONSEP OOP: PEWARISAN / INHERITANCE

MODUL 1. CLASS, OBJECT, CONSTRUCTOR DAN METHOD

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Bahasa Pemrograman 2.

BAB 7 OVERLOADING DAN OVERRIDING

MODUL 1. Class, Object, Constructor dan Method

KONSEP OOP: PEWARISAN / INHERITANCE

Pemrograman Berorientasi. Abstract & Interface

Bahasa Pemrograman 2.

Konsep Dasar Pemrograman Berorientasi Objek

KONSEP OOP: PEWARISAN / INHERITANCE

Pengenalan OOP. Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program.

KONSEP OOP: POLYMORPHISM

Chapter 10 Polimorphism

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

Dasar-Dasar OOP di Java

Pemrograman Lanjut Tipe Data dan Constructor PTIIK

9/26/2011. Tujuan. Bekerja dengan Java Class Library. Pengenalan OOP. Pengenalan OOP. Class dan Object. Enkapsulasi

Dasar Pemrograman Java

[Lanjutan] Nurochman

JOBSHEET POLIMORFISME

Algoritma Pemrograman [BS204]

Overriding Overloading Polymorphism

BEKERJA DENGAN JAVA CLASS LIBRARY

Pemograman Berorientasi Objek. Week 4 Initialization dan Instance dalam Kelas

Pemrograman. Pertemuan-3 Fery Updi,M.Kom

Pertemuan 11 Object Oriented Program

Praktikum. PBO (Kelas K) Oleh : MOHAMMAD SHOLIKIN

OBJECT, CLASS DAN METHOD. 1. Mengetahui pengertian dari objek & class 2. Dapat membuat program sederhana dari java dengan menggunakna objek dan class

Praktikum 8 Polymorphism

Object Oriented Programming (OOP) --Inheritance- Saniati STMIK Teknokrat, Bandar Lampung

Transkripsi:

Tutorial Inheritance 1. Terminologi Inheritance Inheritance adalah fakta bahwa satu class dapat diturunkan sebagian atau seluruh strukturnya dari class lainnya. Class yang melakukan penurunan disebut subclass atau childclass dari class yang menurunkan yang disebut superclass atau parent class. Jika B merupakan subclass dari A, maka A disebut superclass atau base class dan B di sebut subclass atau class turunan. Perhatikan gambar berikut : Untuk membuat class bernama B sebagai subclass dari base class A, caranya : class B extends A {.. // tambahan atau modifikasi,. // turunan dari class A. 2. Aksesibilitas Dalam subclass kita dapat megakses method public superclass dan protected serta fields, tapi bukan method private dari superclass. Jika subclass dan superclass dalam package yang sama, kita juga dapat mengakses method dan field default superclass. Perhatikan contoh berikut : public class P { public void publicmethod() { protected void protectedmethod() { void defaultmethod() { class C extends P { public void testmethod() { publicmethod(); protectedmethod(); defaultmethod();

3. Method Overriding a) Saat kita meng-extends suatu class, kita dapat merubah behavior dari method dalam parent class maka kita melakukan method overriding. b) Hal ini terjadi saat kita menulis method dalam yang mempunyai nama atau pengenal yang sama dengan method pada parent class. c) Jika hanya namanya yang sama tetapi daftar argument parameternya tidak maka kita melakukan suatu method overloading. 4. Keyword extends Jika kita akan meng-exend / meperluas / menurunkan suatu class gunakan keyword extends, misal terdapat class Parent.java dan akan membuat turunanya yang di beri nama Child.java, perhatikan contoh berikut : public class Parent { public class Child extends Parent { 5. Class Turunan Untuk memahami atau membuat class turunan perhatikan contoh berikut : class Animal { public Animal(String atype) { type = atype; public String tostring() { return "This is a " + type; private String type; class Dog extends Animal { public Dog(String name){ super(name); private String breed; 6. Keyword super, sebagai instan atau superclass clangsung dari object saat ini 1. Kita dapat secara explicit memanggil konstruktor parent class dari konstruktor subclass dengan menggunakan keyword super. 2. 'super' harus menjadi statement pertama dalam konstruktor, perhatikan contoh berikut class Parent { public Parent(){ public class Child extends Parent { public Child () { super();

7. Konstruktor class turunan : Pemanggilan konctruktor base class Perhatikan contoh berikut, class Animal { public Animal(String atype) { type = new String(aType); public String tostring() { return "This is a " + type; private String type; class Dog extends Animal { public Dog(String aname) { super("dog"); name = aname; breed = "Unknown"; public Dog(String aname, String abreed) { super("dog"); name = aname; breed = abreed; private String name; private String breed; 8. Overriding method base class Kita dapatmelakukan overriding method pada base class seperti contoh berikut class Animal { public Animal(String atype) { type = new String(aType); public String tostring() { return "This is a " + type; private String type; class Dog extends Animal { public Dog(String aname) { super("dog"); name = aname; breed = "Unknown"; public Dog(String aname, String abreed) { super("dog"); name = aname; breed = abreed; public String tostring() { return "It's " + name + " the " + breed; private String name; private String breed;

9. Type Casting Type casting adalah suatu konversi tipe atau object ke tipe atau object lainnya, a) Dengan objects, kita dapat melaukan cast pada suatu instance subclass ke parent class. b) Casting pada suatu bject ke parent class di sebut upcasting misalnya, Child child = new Child (); Parent parent = child; Untuk melakukan upcasting yang kita perlukan adalah melakukan assignment pada object yang di acu ke suatu referensi variabel dari tipe parent-nya. Variabel referensi Parent tidak dapat diakses anggota yang hanya tersedia di child class. Karena referensi parent suatu object bertipe child, kita dapat melakukan casting kembali ke child, ini dinamakan downcasting, karena kita melakukan cast dari object ke class secara menurun dari hirarki inheritance. Child child2 = (Child) parent; 10. Inheritance, constructor dan argument Untuk memahami hal di atas perhatikan contoh berikut, class A { A(int i) { System.out.println("A constructor"); class B extends A { B(int i) { super(i); System.out.println("B constructor"); class C extends B { C() { super(11); System.out.println("C constructor"); public class MainClass { public static void main(string[] args) { C x = new C(); akan menghasilkan output A constructor B constructor C constructor 11. Inheritance dan Upcasting Perhatikan contoh berikut untuk memahami persoalan inheritance dan upcasting class A { public void play() { static void tune(a i) { i.play();

class B extends A { public class MainClass { public static void main(string[] args) { B flute = new B(); A.tune(flute); // Upcasting 12. Overloading nama method base class dalam class turunan dalam versi base class yang tidak tersembunyi Perhatikan contoh berikut class A { char doh(char c) { System.out.println("doh(char)"); return 'd'; float doh(float f) { System.out.println("doh(float)"); return 1.0f; class B { class C extends A { void doh(b m) { System.out.println("doh(B)"); public class MainClass { public static void main(string[] args) { C b = new C(); b.doh(1); b.doh('x'); b.doh(1.0f); b.doh(new B()); Output program sebagai berikut doh(float) doh(char) doh(float) doh(b)

13. Membersihkan Inheritance Membersihkan inheritance dapat di pahami dari contoh berikut class Characteristic { private String s; Characteristic(String s) { this.s = s; System.out.println("Creating Characteristic " + s); System.out.println("finalizing Characteristic " + s); class Description { private String s; Description(String s) { this.s = s; System.out.println("Creating Description " + s); System.out.println("finalizing Description " + s); class LivingCreature { private Characteristic p = new Characteristic("is alive"); private Description t = new Description("Basic Living Creature"); LivingCreature() { System.out.println("LivingCreature()"); System.out.println("LivingCreature dispose"); t.dispose(); p.dispose(); class Animal extends LivingCreature { private Characteristic p = new Characteristic("has heart"); private Description t = new Description("Animal not Vegetable"); Animal() { System.out.println("Animal()"); System.out.println("Animal dispose"); t.dispose(); p.dispose(); super.dispose();

class Amphibian extends Animal { private Characteristic p = new Characteristic("can live in water"); private Description t = new Description("Both water and land"); Amphibian() { System.out.println("Amphibian()"); System.out.println("Amphibian dispose"); t.dispose(); p.dispose(); super.dispose(); class Frog extends Amphibian { private Characteristic p = new Characteristic("Croaks"); private Description t = new Description("Eats Bugs"); public Frog() { System.out.println("Frog()"); System.out.println("Frog dispose"); t.dispose(); p.dispose(); super.dispose(); public class MainClass { public static void main(string[] args) { Frog frog = new Frog(); System.out.println("Bye!"); frog.dispose(); Output program adalah sebagai berikut : Creating Characteristic is alive Creating Description Basic Living Creature LivingCreature() Creating Characteristic has heart Creating Description Animal not Vegetable Animal() Creating Characteristic can live in water Creating Description Both water and land Amphibian() Creating Characteristic Croaks Creating Description Eats Bugs Frog() Bye! Frog dispose finalizing Description Eats Bugs finalizing Characteristic Croaks Amphibian dispose

finalizing Description Both water and land finalizing Characteristic can live in water Animal dispose finalizing Description Animal not Vegetable finalizing Characteristic has heart LivingCreature dispose finalizing Description Basic Living Creature finalizing Characteristic is alive 14. Multilevel Hirarki Perhatikan contoh membuat multilevel hirarki class class Box { private double width; private double height; private double depth; Box(Box ob) { // pass object to constructor width = ob.width; height = ob.height; depth = ob.depth; Box(double w, double h, double d) { width = w; height = h; depth = d; Box() { width = -1; // use -1 to indicate height = -1; // an uninitialized depth = -1; // box Box(double len) { width = height = depth = len; double volume() { return width * height * depth; class BoxWeight extends Box { double weight; // weight of box BoxWeight(BoxWeight ob) { // pass object to constructor super(ob); weight = ob.weight; BoxWeight(double w, double h, double d, double m) { super(w, h, d); // call superclass constructor weight = m; BoxWeight() { super();

weight = -1; BoxWeight(double len, double m) { super(len); weight = m; class Shipment extends BoxWeight { double cost; Shipment(Shipment ob) { // pass object to constructor super(ob); cost = ob.cost; Shipment(double w, double h, double d, double m, double c) { super(w, h, d, m); // call superclass constructor cost = c; Shipment() { super(); cost = -1; Shipment(double len, double m, double c) { super(len, m); cost = c; class DemoShipment { public static void main(string args[]) { Shipment shipment1 = new Shipment(10, 20, 15, 10, 3.41); Shipment shipment2 = new Shipment(2, 3, 4, 0.76, 1.28); double vol; vol = shipment1.volume(); System.out.println("Volume of shipment1 is " + vol); System.out.println("Weight of shipment1 is " + shipment1.weight); System.out.println("Shipping cost: $" + shipment1.cost); System.out.println(); vol = shipment2.volume(); System.out.println("Volume of shipment2 is " + vol); System.out.println("Weight of shipment2 is " + shipment2.weight); System.out.println("Shipping cost: $" + shipment2.cost); 15. Demonstrasi saat konstruktor di panggil dalam multilevel hirarki Perhatikan contoh demonstrasinya di bawah ini class A { A() { System.out.println("Inside A's constructor.");

class B extends A { B() { System.out.println("Inside B's constructor."); class C extends B { C() { System.out.println("Inside C's constructor."); class CallingCons { public static void main(string args[]) { C c = new C();