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

dokumen-dokumen yang mirip
Bahasa Pemrograman :: Polimorfism and Abstraction

Inheritance (Pewarisan) Pengertian dasar inheritance

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

Bahasa Pemrograman :: Inheritance

Composition dan Inheritance

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

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

Pemrograman Berorientasi. Inheritance

Inheritance dan Kata Kunci static

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

Gambar 1: Hirarki class

Konsep Dasar Pemrograman Berorientasi Objek

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

Polymorphism (Polimorfisme)

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

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

MODUL 2. UML, Generalization, and Specialization UML. 2.1 Pengertian UML. 2.2 Diagram-Diagram yang Ada Dalam UML TUJUAN PRAKTIKUM LANDASAN TEORI

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

Pewarisan, Polimorfisme, dan Interface

CSG2H3 Object Oriented Programming. Inheritance -RSM-

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

2015 BAHASA PEMROGRAMAN I. Pertemuan VI Inheritance (Pewarisan)

Chapter 10 Polimorphism

PEMROGRAMAN BERORIENTASI OBJEK

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

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

subclass class manapun private default protected public package yang sama

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

KONSEP OOP: POLYMORPHISM

KONSEP OOP: POLYMORPHISM

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

IKG2I4 / Software Project I

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

INHERITANCE. Gambar 1. Kelas Hierarki Java

Inheritance. Pertemuan 8 Pemrograman Berbasis Obyek

ABSTRACTION, ENCAPSULATION, INHERITANCE & POLYMORPHISM

Inheritance. Topik 5/17/2013

Pemrograman Berbasis Objek Inheritance

(INHERITANCE) Nurochman

Pemrograman Berorientasi. Class dan Obyek 2

Pemrograman Berorientasi Objek Danu Wira Pangestu

Pemrograman Berbasis Objek. Interface. Politeknik Elektronika Negeri Surabaya

Employee employee=new Manager();

Modul Bahasa Pemrograman 1

KONSEP OOP: PEWARISAN / INHERITANCE

Konsep Objek Oriented

Pertemuan 4 Halaman 1/1. Class Inheritance

KONSEP OOP: PEWARISAN / INHERITANCE

Membuat dan Menggunakan Class

Pemrograman Berorientasi. Abstract & Interface

Bahasa Pemrograman 2.

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

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

Praktikum 6 Abstract, Interface, Overloading, Overriding, dan Package

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

KONSEP OOP: PEWARISAN / INHERITANCE

Method yang ada pada parent class(superclass) didefinisikan kembali oleh kelas anaknya (subclass).

PEMROGRAMAN BERORIENTASI OBJEK

LAPORAN RESMI INHERITANCE

Pewarisan Sifat Objek. Nur Hasanah, M.Cs

Jobsheet 09. Overloading and Overriding Method

Bahasa Pemrograman 2.

Algoritma Pemrograman [BS204]

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

Inheritance (Pewarisan Sifat) Imam Fahrur Rozi

LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK MODUL 3 ABSTRAKSI

Abstract Class dan Interface. Viska Mutiawani, M.Sc

Konsep Inheritance. Praktikum 8 Pemrograman Berbasis Obyek

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

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

Pertemuan 11 Object Oriented Program

Pemrograman Berorientasi Objek 2

Pemograman Berorientasi Objek. Week 3 Abstrak dan Interface dalam suatu kelas

PRAKTIKUM 6 EXCEPTION

Class dan Object. PBO/Java/Ayuliana/Revisi

Praktikum 3 Konsep Class, Attribute dan Method

Pemrograman Lanjut. Interface

Pewarisan Jamak Oleh : Agus Priyanto Priy, anto M.Kom M.K

Percobaan 6 Exception

MINGGU VII : RELASI ANTAR KELAS

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

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

Parent dan Child di Java

public class B extends A {... }

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

PERCOBAAN 6 EXCEPTION

:: abstract class + interface. :: abstract class

UNIVERSITAS GUNADARMA

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

LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK (PBO) MODUL 5 INTERFACE

IT 405: KPLBO MATERI 8 RELASI ANTAR OBJEK. Ayi Purbasari, ST., MT. If-Unpas, 2014

Dengan menggunakan encapsulation kita dapat membatasi akses langsung suatu class atau program kecuali melalui suatu method yang sudah diberikan.

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

PEMROGRAMAN PHP DASAR

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

Class Wrapper. Tujuan dari Class Wrapper

ColorMatcher. Goal. Preparation. The Task & the Game. Level 1

[Lanjutan] Nurochman

Transkripsi:

Materi 6 Inheritance Niko Ibrahim, MIT Maranatha Christian University Like mother, like daughter... [common saying]

Today s Menu INHERITANCE Inheritance Specialization Extension Two kinds of relationship Example: aggregation Vs inheritance Protected scope Overriding methods Calling the superclass INHERITING FOR EVENT HANDLING Event handling in alibrary Event handling implementation Delegation Model

Inheritance Inheritance memungkinkan kita untuk mendefinisikan sebuah kelas yang bersifat umum, yang kemudian kita bisa definisikan kelas-kelas lain yang lebih khusus dengan cara menambahkan beberapa definisi tambahan kepada kelas umum tadi. Hal ini sangat efektif dan membantu para programmer, karena kelas khusus (child) tadi akan memiliki properties/method/variabel yang sama dengan kelas umum (parent) Kelas Umum (parent) BASE CLASS Kelas Khusus (child) DERIVED CLASS

Contoh Kasus Kita akan mendesain program penyimpanan data Student, Lecturer, dan Staff di sebuah fakultas. Ketiga entitas tersebut memiliki kesamaan dan dapat digolongkan menjadi satu kelas umum, yaitu Person Jadi, kita bisa katakan bahwa Student adalah subclass dari People Student pun bisa memiliki subclass lagi, yaitu Undergraduate dan Graduate

Hirarki Inheritance Person Student Employee Undergraduate Graduate Lecturer Staff Master PhD

Contoh Inheritance KELAS PERSON Kelas Person hanya memiliki property name Fungsinya sangat sederhana, yaitu memberikan nama seseorang Kelas Person disebut sebagai BASE CLASS KELAS STUDENT Kelas Student adalah subclass dari Person Kelas Student disebut sebagai DERIVED CLASS Derived Class adalah suatu kelas yang didefinisikan dengan cara menambahkan instance variable dan methods kepada kelas yang telah ada (Base Class)

Hirarki Kelas dalam UML Person - name: String + setname (String newname): void + getname ( ): String + writeoutput ( ): void + samename (Person otherperson): boolean Student - studentnumber: int + reset(string newname, int newstudentnumber): void + getstudentnumber( ): int + setstudentnumber (int newstudentnumber): void + writeoutput( ): void + equals(students otherstudent): boolean

Kelas Person public class Person{ private String name; public Person(){ name = "No name yet."; // Constructor public Person (String initialname){ name = initialname; public void setname(string newname){ name = newname; public String getname(){ return name; public void writeoutput(){ System.out.println("Name: " + name); public boolean samename(person otherperson){ return (this.name.equalsignorecase(otherperson.name));

Kelas Student public class Student extends Person menjadi base class { private int studentnumber; public Student(){ super(); Person studentnumber = 0; // extends Person, artinya: kelas Person // Constructor // Super(): memanggil Constructor parent-nya, yaitu public Student(String initialname, int initialstudentnumber){ super(initialname); studentnumber = initialstudentnumber; public void reset(string newname, int newstudentnumber){ setname(newname); studentnumber = newstudentnumber; public int getstudentnumber(){ return studentnumber; public void setstudentnumber(int newstudentnumber){ studentnumber = newstudentnumber; public void writeoutput(){ System.out.println("Name: " + getname()); System.out.println("Student Number: " + studentnumber); public boolean equals(student otherstudent){ return (this.samename(otherstudent) && (this.studentnumber == otherstudent.studentnumber));

DEMO PERSON STUDENT public class InheritanceDemo{ public static void main (String[] args){ Student s = new Student(); s.setname("warren Peace"); s.setstudentnumber(1234); s.writeoutput(); HASIL: Name: Warren Peace Student Number: 1234

Sintaks Umum untuk Inheritance public class Derived_Class_Name extends Base_Class_name { Declaration_of_added_Instance_variable Delcaration_of_added_and_overriden_methods

Contoh lain (Praktikum 1: Sun Rise)

Overidding kelas Shape

Overriding Method Definitions Pada kelas Student, kita menambahkan sebuah method dengan nama writeoutput yang tidak memiliki parameter. Namun, kelas Person pun memiliki method dengan nama yang sama writeoutput dan tanpa parameter pula. Java memiliki aturan sbb: Apabila derived class memiliki method yang sama persis (nama, jumlah parameter, & tipe parameter-nya) dengan base class, maka method derived class akan menimpa (override) method di base class. Jadi pada saat program membaca kode: s.writeoutput( ); Maka, method writeoutput( ) yang dibaca adalah yang kepunyaan kelas Student

Two Kinds Of Relationship Hubungan antar kelas sebenarnya bisa digolongkan menjadi dua jenis: Is_a (perlu menggunakan keyword extends) Has_a (tidak perlu menggunakan keyword extends) Contoh hubungan Is_a : Student is a Person, artinya seorang Student adalah Person. Namun, seringkali kita memerlukan hubungan yang bukan is a Misalnya: kelas Student memiliki kelas Date yang berguna sebagai tanggal enrollment. Jelas bahwa Student is not a Date Sehingga kita perlu menggunakan hubungan has a, jadi Student has a Date Caranya adalah dengan menambahkan sebuah instance variable bertipe Date di kelas Student. Tidak perlu menggunakan keyword extends. Contoh lain adalah: Clock memiliki ClockFace ClockFace memiliki ClockHand

Two Kinds Of Relationship Aggregation (composition) Class B uses Class A Class B has a Class A Class B is a client of Class A Class A is a supplier to Class B Inheritance (extension) Class B extends Class A Class B is a subclass of Class A Class A is a superclass of Class B Panduan: Is_a or Has_a? What kind of relationship? How does a new class relate to another? Try asking is a or has a " "Has a" - use aggregation "Is a" - use inheritance

Is_a atau has_a? Aggregation: Has_a a dog has_a tail a car has_a wheel (or 4) a student has_an ID number a rectangle has_a color a client has_a supplier an aggregate has_a component Inheritance: Is_a a dog is_an animal a car is_a vehicle a student is_a person a rectangle is_a geometric shape a subclass is_a superclass an extending class is_a base class