this → Artikel Baru – ( Atrikel Lama ↓ )

2 Contoh Program Akses Terbatas Menuju Method Class Derived pada Java

Pada Java, akan ditampilkan compiler error jika memberikan banyak batasan akses menuju sebuah fungsi class derived yang overriding ke sebuah fungsi base class. Contohnya, jika terdapat sebuah fungsi public void foo() dalam base class dan jika hal itu overriding dalam derived class, maka akses spesifikasi foo() tidak dapat menjadi apapun ketimbang public pada derived class. Jika foo() adalah fungsi private pada base class, maka spesifikasi akses untuk class tersebut dapat berupa apapun dalam derived class.

Perhatikan dua contoh program berikut. Program 1 gagal dalam kompilasi dan Program 2 dapat dikompilasi secara sempurna.


Pahami pula, tentang semua konsep desain Web untuk tingkat pemula melalui materi lengkap JAVA [klik].


Program 1

/* file name: Main.java */

class Base

public void foo() 

{System.out.println("Base");} 

 

class Derived extends Base 

/* kompilator error */

private void foo() 

{System.out.println("Derived");} 

 

public class Main

public static void main(String args[]

{Derived d = new Derived(); 

d.foo();} 

}



Baca juga, tentang materi bahasa pemrograman lainnya melalui Materi Lengkap 

Bahasa Pemrograman [klik].


Program 2

/* file name: Main.java */

class Base

private void foo() 

{ System.out.println("Base"); } 

 

class Derived extends Base 

/* program dapat berjalan sempurna */

public void foo() 

{System.out.println("Derived");} 

 

public class Main

public static void main(String args[]

{Derived d = new Derived(); 

d.foo();} 

}

Output:
Derived

Komentar

  1. Apakah mungkin untuk menyembunyikan atau menurunkan tingkat akses ke method yang inheritance pada Java?

    BalasHapus
    Balasan
    1. Ketika melakukan override method, maka hanya bisa dilakukan dalam tipe public, bukan pada tipe private.

      Hapus
    2. Konsep inheritance dapat bekerja karena program dapat menggunakan base class, dimana subclassnya juga dapat digunakan. Behavior-nya mungkin berbeda, tetapi API tidak. Konsep tersebut dikenal dengan istilah Liskov substitusi.

      Jika dapat dilakukan pembatasan akses ke suatu method, maka class yang dihasilkan tidak akan memiliki API yang sama dan juga tidak dapat digunakan override instance base class untuk salah satu class turunan, dan sudah pasti hal tersebut akan meniadakan keuntungan dari konsep inheritance pada Java.

      Hapus
    3. Mungkin saja, tetapi membutuhkan sedikit manipulasi package dan dapat mengarah pada struktur yang sedikit lebih kompleks daripada yang ingin dikerjakan dalam kepentingan jangka panjang.

      Hapus
    4. apalah susahnya hanya mengganti tipe private ke tipe public, jangan suka mempersulit diri sendiri. :D

      Hapus

Posting Komentar

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung. :D

Catatan: setiap iklan yang ditayangkan pada blog ini bersumber dari google adsense. Dengan jenis iklan yang dipilih adalah, sebagai berikut.

POIN 1, Iklan yang ditampilkan hanya boleh berbahasa indonesia atau berbahasa inggris. Tidak menerima jenis iklan dalam bahasa yang lain selain yang telah disebutkan karena blog ini dibuat untuk para pengunjung dari negara atau orang yang berbahasa Indonesia.

POIN 2, Setiap gambar yang ditampilkan pada iklan sifatnya tidak mengganggu para pengunjung yang melihat blog, atau tidak boleh menampilkan gambar yang bersifat menjijikkan atau merangsang rasa mual.

POIN 3, Jenis iklan yang dipasang bukan merupakan iklan spam, atau berisi dan mengarahkan pengunjung ke alamat yang berbahaya atau bersifat penipuan.

POIN 4, Segala bentuk iklan tunduk dan patuh pada ketentuan dari pihak Adsense google dan pemilik blog.

POIN 5, Segala jenis iklan yang tidak bertentangan dengan poin 1-4 yang dijelaskan sebelumnya, maka iklan tersebut dapat ditampilkan pada blog.



~ Ikatlah Ilmu dengan Memostingkannya ~

Hot Artikel

Enkapsulasi pada Java

Perbedaan stdio.h dan stdlib.h pada Bahasa C

Penjelasan Singkat tentang Konsep Asosiasi, Komposisi, dan Agregasi pada Java

3 Jenis Utama Looping pada Java