DAFTAR LABEL POPULER PENELITIAN.ID

Jangan Buka Artikel Ini!

Method Class Derived Java dan Fungsinya

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.

2 Contoh Program Akses Terbatas Menuju Method Class Derived pada Java
Ilustrasi Method Class Derived Java

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

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();} 

}

Output:
Derived

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

Hubungi admin melalui Wa : +62-896-2514-6106

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

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

~ Ikatlah Ilmu dengan Memostingkannya ~

Postingan populer dari blog ini (30 Hari)

Specifier %d dan %i Bahasa C dan Fungsinya

Enkapsulasi Java dan Fungsinya

4 Kesalahan Umum yang Sering Terjadi pada PTK

Cara Membuat Drag and Drop pada HTML

Postingan populer dari blog ini (All Time)

Enkapsulasi Java dan Fungsinya

Komunitas