1.Pewarisan
class PersegiPanjang
{
double panjang;
double lebar;
{
double panjang;
double lebar;
PersegiPanjang(double panjang, double lebar) {
this.panjang = panjang;
this.lebar = lebar;
}
PersegiPanjang()
{
throw new UnsupportedOperationException(“Not yet implemented”);
}
double hitungLuas() {
return (panjang * lebar);
}
double getPanjang() {
return panjang;
}
double getLebar() {
return lebar;
}
}
this.panjang = panjang;
this.lebar = lebar;
}
PersegiPanjang()
{
throw new UnsupportedOperationException(“Not yet implemented”);
}
double hitungLuas() {
return (panjang * lebar);
}
double getPanjang() {
return panjang;
}
double getLebar() {
return lebar;
}
}
Balok.java
class Balok extends PersegiPanjang{
double tinggi;
double tinggi;
Balok(double panjang, double lebar, double tinggi) {
super(panjang, lebar);
this.tinggi = tinggi;
}
super(panjang, lebar);
this.tinggi = tinggi;
}
@Override
double hitungLuas() {
return (panjang * lebar * tinggi);
}
}
double hitungLuas() {
return (panjang * lebar * tinggi);
}
}
Hitung.java
class Hitung {
public static void main(String[] args) {
Balok b1 = new Balok(30, 40, 10);
PersegiPanjang p1 = new PersegiPanjang(30,40);
System.out.println(“panjang = ” +b1.panjang);
System.out.println(“lebar = ” +b1.lebar);
System.out.println(“tinggi = ” +b1.tinggi);
System.out.println(“luas = ” +p1.hitungLuas());
System.out.println(“volum = ” +b1.hitungLuas());
}
}
public static void main(String[] args) {
Balok b1 = new Balok(30, 40, 10);
PersegiPanjang p1 = new PersegiPanjang(30,40);
System.out.println(“panjang = ” +b1.panjang);
System.out.println(“lebar = ” +b1.lebar);
System.out.println(“tinggi = ” +b1.tinggi);
System.out.println(“luas = ” +p1.hitungLuas());
System.out.println(“volum = ” +b1.hitungLuas());
}
}
2.Inheritance (Pewarisan /
Turunan )
Contoh dalam program :
OrangTua.Java
class OrangTua{
String a = “Penyabar”;
char b = ‘A’;
void sifatOrangTua(){
System.out.println(“Sifat Orang Tua : “+a);
void sifatOrangTua(){
System.out.println(“Sifat Orang Tua : “+a);
System.out.println(“Golongan Darah : “+b);
}
}
Anak.Java
class Anak extends OrangTua{
String c = “Nakal”;
public void sifatAnak(){
System.out.println(“Sifat Anak : “+c);
}
public void sifatAnak(){
System.out.println(“Sifat Anak : “+c);
}
}
AnakAnak.Java
public class AnakAnak{
public static void main(String[]args){
Anak anakku = new Anak();
anakku.sifatOrangTua();
public static void main(String[]args){
Anak anakku = new Anak();
anakku.sifatOrangTua();
anakku.sifatAnak();
}
}
3. (Pewarisan)
Contoh program javanya :
Simpan dengan nama SmartMahasiswa.java
Public class SmartMahsiswa extends Mahasiswa{
}
Simpan dengan nama Main.java
public class Main{
public static void main(String[] args]) {
SmartMahasiswa mhs = new SmartMahasiswa();
mhs.setNim(“090840045”);
mhs.setNama(“Rio Patra Rumahorbo”);
mhs.printNim();
mhs.printNama();
}
}
kemudian jalankan
C:\>javac SmartMahasiswa.java
C:\>javac Main.java
C:\>java Main
Kontruksi objek mahasiswa
Nim:090840045
Nama: Rio Patra Rumahorbo
C:\>
1.Contoh
Program Java Yang Menggunakan Polimorfisme :
//Class kendaraan.java
public class Kendaraan {
private int posisi;
public Kendaraan(int posisi) {
this.posisi = posisi;
}
public void Move() {
return;
}
public int getPosisi() {
return posisi;
}
public void setPosisi(int posisi) {
this.posisi = posisi;
}
}
//Class motor.java
public class Motor extends Kendaraan {
public Motor(int posisi) {
super(posisi);
}
@Override
public void Move() {
setPosisi(getPosisi() + 30);
}
}
//Class motor.java
public class Motor extends Kendaraan {
public Motor(int posisi) {
super(posisi);
}
@Override
public void Move() {
setPosisi(getPosisi() + 30);
}
//Class pesawat.java
public class Pesawat extends Kendaraan {
public Pesawat(int posisi) {
super(posisi);
}
@Override
public void Move() {
setPosisi(getPosisi() + 300);
}
}
//Class Main.java
public class Main {
public static void main(String[] args) {
Kendaraan kendaraan[] = new Kendaraan[3];
int posisi = 10;
kendaraan[0] = new Motor(posisi);
kendaraan[1] = new Mobil(posisi);
kendaraan[2] = new Pesawat(posisi);
System.out.println("Intansiasi 3 Object Turunan Class Kendaraan");
System.out.println(" -kendaraan[0] merupakan instantsiasi dari class "
+ "Motor dengan posisi awal " + posisi);
System.out.println(" -kendaraan[1] merupakan instantsiasi dari class "
+ "Mobil dengan posisi awal " + posisi);
System.out.println(" -kendaraan[2] merupakan instantsiasi dari class "
+ "Pesawat dengan posisi awal " + posisi);
for (int i = 0; i < kendaraan.length(); i++) {
System.out.println("Object [" + i + "] memanggil method move");
System.out.println("Posisi sebelum method move() dipanggil : " + kendaraan[i].getPosisi());
kendaraan[i].Move();
System.out.println("Posisi setelah method move() dipanggil : " + kendaraan[i].getPosisi());
System.out.println();
}
}
}
Selain itu, dalam java
juga dikenalkan sebuah keyword untuk mengetahui bentuk instance suatu object,
yaitu instanceof untuk
penggunaannya mari kita modifikasi saja main.java dari program diatas sehingga menjadi seperti berikut ini
public class Main {
public static void main(String[] args) {
Kendaraan kendaraan[] = new Kendaraan[3];
int posisi = 10;
kendaraan[0] = new Motor(posisi);
kendaraan[1] = new Mobil(posisi);
kendaraan[2] = new Pesawat(posisi);
if (kendaraan[0] instanceof Motor) {
System.out.println("Kendaraan[0] merupakan instanceof Motor");
}
if (kendaraan[1] instanceof Motor) {
System.out.println("Kendaraan[1] merupakan instanceof Motor");
}
}
}
Polimorfisme adalah metode yang digunakan untuk
menyatakan satu nama yang merujuk
ke beberapa fungsi berbeda.
Java mengimplementasikan polimorfisme dengan 2 cara, yaitu:
1. Methode overloading
2. Methode overriding dengan pewarisan
ke beberapa fungsi berbeda.
Java mengimplementasikan polimorfisme dengan 2 cara, yaitu:
1. Methode overloading
2. Methode overriding dengan pewarisan
2. Contoh Polimorfisme
Overloading
public class Matematika
{public int max (int bil1, int bil2)
{System.out.println(“max integer”);
return (bil1 < bil2 ? bil2 : bil1);
{System.out.println(“max integer”);
return (bil1 < bil2 ? bil2 : bil1);
}public float max (float bil1, float bil2)
{System.out.println(“max float”);
return (bil1 < bil2 ? bil2 : bil1);
{System.out.println(“max float”);
return (bil1 < bil2 ? bil2 : bil1);
}public double max (double bil1, double bil2)
{System.out.println(“max double”);
return (bil1 < bil2 ? bil2 : bil1);
{System.out.println(“max double”);
return (bil1 < bil2 ? bil2 : bil1);
}}public class Testmax
{public static void main (String args [ ] )
{Matematika test = new Matematika ( );
System.out.println(“3 dan 4, yang lebih besar :”
{Matematika test = new Matematika ( );
System.out.println(“3 dan 4, yang lebih besar :”
+ test.max (3,4));
System.out.println(“3 .3 dan 4.0, yang lebih besar :”
+ test.max (3.3F ,4F));
System.out.println(“3.5 dan 4.0, yang lebih besar :”
+ test.max (3.5, 4.0));
}
+ test.max (3.3F ,4F));
System.out.println(“3.5 dan 4.0, yang lebih besar :”
+ test.max (3.5, 4.0));
}
}
b) Contoh Polimorfisme Overridding
polimorfisme ini diwujudkan melalui relasi pewarisan
public class.KomunitasUniversitas
{protected String nama ;
protected String alamat ;
/* intansiasi nama dan alamat dengan nilai tertentu */
KomunitasUniversitas (String namaku, String alamatku)
{nama = namaku ;
/* intansiasi nama dan alamat dengan nilai tertentu */
KomunitasUniversitas (String namaku, String alamatku)
{nama = namaku ;
alamat = alamatku ;
}public void tampilinformasi ( )
{System.out.println (“nama : “+nama) ;
System.out.println (“alamat : “+alamat) ;
{System.out.println (“nama : “+nama) ;
System.out.println (“alamat : “+alamat) ;
}}
public class pegawai extends KomunitasUniversitas
{private int noPegawai ;
private int gajiPokok ;
Pegawai (String namaku, String alamatku, int noPegawaiku, int gajiPokokku)
private int gajiPokok ;
Pegawai (String namaku, String alamatku, int noPegawaiku, int gajiPokokku)
{noPegawai = noPegawaiku :
gajiPokok = gajiPokokku :
}public void tampilinformasi ( )
{System.out.println(“NoPegawaiku ; “+noPegawai);
System.out.println(“GajiPokokku ; “+gajiPokok);
{System.out.println(“NoPegawaiku ; “+noPegawai);
System.out.println(“GajiPokokku ; “+gajiPokok);
}
}
3.Contoh Polimorfisme
Di Java
|
public
class Orang { |
|
|
public
String nama; |
|
public
String alamat; |
|
|
|
|
//Constructor... |
|
|
public
Orang(){ |
|
} |
|
|
|
|
public
Orang(String nama) { |
|
|
this.nama
= nama; |
|
} |
|
|
public
Orang(String nama,String alamat){ |
|
this.nama=nama; |
|
|
this.alamat=alamat; |
|
} |
|
|
//accessor
method mengembalikan nilai |
|
public
String getName(){ |
|
|
return
nama; |
|
} |
|
|
//mutator
methode untuk mengubah nilai dari instance. |
|
public
void setName(String nama){ |
|
|
this.nama
= nama; |
|
} |
|
|
} |
Mahasiswa.java
|
public
class Mahasiswa extends Orang{ |
|
|
|
|
String
jeniskelamin; |
|
|
public
Mahasiswa() { |
|
//super
digunakan untuk memanggil constructor terdekat pada kelas Orang. |
|
|
super("andi"); |
|
} |
|
|
//overidde
methode dari kelas Orang.. |
|
public
String getName(){ |
|
|
return
nama; |
|
} |
|
|
public
void setName(String nama){ |
|
this.nama
= nama; |
|
|
} |
|
|
|
|
} |
Pekerja.java
|
public
class Pekerja extends Orang{ |
|
|
|
|
public
Pekerja() { |
|
|
super("suparlan"); |
|
} |
|
|
//ovveride
dari kelas Person |
|
public
String getName(){ |
|
|
return
nama; |
|
} |
|
|
public
void setName(String nama){ |
|
this.nama
= nama; |
|
|
} |
|
|
|
} |
CallOrang.java : memanggil semua
class…intinya sebagai pusat pemanggilan.
|
public
class CallOrang { |
|
|
|
|
public
static void main(String[] args){ |
|
|
//contoh
polimorfisme di java |
|
Orang
call; |
|
|
Mahasiswa
m = new Mahasiswa(); |
|
Pekerja
n = new Pekerja(); |
|
|
|
|
//memanggil
dari kelas mahasiswa |
|
|
call
= m; |
|
String
smp = call.getName(); |
|
|
System.out.println("aku
dari bagian Mahasiswa : " + smp); |
|
//memanggil
dari kelas pekerja |
|
|
call
= n; |
|
String
sma = call.getName(); |
|
|
System.out.println("aku
dari bagian Pekerja : " +
sma); |
|
} |
Nice share gan, untuk contoh polimorfisme yang lainnya bisa kunjungi :
BalasHapushttp://top-ilmu.blogspot.com/2012/11/contoh-program-java-polimorfisme.html