Lompat ke konten Lompat ke sidebar Lompat ke footer

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.

Contoh: 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


Contoh: 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


Artikel ini didedikasikan kepada: Elian Anindia Permatasari, Farisa Nur Rizkika, Gega Agli Dutatama, Herawati Mega, dan Ilham Bashairil Alam.

5 komentar untuk "Method Class Derived Java dan Fungsinya"

  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

Hubungi admin melalui Wa : +62-896-2414-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 -
- Big things start from small things -