Pages

Kamis, 15 November 2012

Constructor Chaining


Pertama pertimbangkan sebuah skenario di mana kelas dasar diperpanjang oleh seorang anak. Setiap kali sebuah objek dari kelas anak dibuat, konstruktor dari kelas induk dipanggil disebut chaining construktor.

Untuk memahami constructor chaining

Langkah 1) Copy kode berikut dalam editor
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class Demo{
   int  value1;
   int  value2;
    Demo(){
      value1 = 1;
      value2 = 2;
      System.out.println("Inside 1st Parent Constructor");
   }
   Demo(int a){
      value1 = a;
      System.out.println("Inside 2nd Parent Constructor");
   }
  public void display(){
     System.out.println("Value1 === "+value1);
     System.out.println("Value2 === "+value2);
  }
  public static void main(String args[]){
     DemoChild d1 = new DemoChild();
     d1.display();
  }
}
class DemoChild extends Demo{
    int value3;
    int value4;
    DemoChild(){
    //super(5);
     value3 = 3;
     value4 = 4;
    System.out.println("Inside the Constructor of Child");
    }
    public void display(){
      System.out.println("Value1 === "+value1);
      System.out.println("Value2 === "+value2);
      System.out.println("Value1 === "+value3);
      System.out.println("Value2 === "+value4);
   }
}


Langkah 2) Jalankan Kode Etik. Karena constructor chaining, ketika objek dari DemoChild anak kelas dibuat, konstruktor Demo () dari kelas induk dipanggil pertama dan kemudian konstruktor DemoChild () dari anak dibuat.
Diharapkan Output =


1
2
3
4
5
6
Inside 1st Parent Constructor
Inside the Constructor of Child
Value1 === 1
Value2 === 2
Value1 === 3
Value2 === 4




Langkah 3) Anda dapat mengamati konstruktor dari kelas induk Demo dikalahkan. Apa yang Anda ingin memanggil konstruktor Demo ditimpa (int a) bukan Demo konstruktor default () ketika objek anak Anda dibuat???
Dalam kasus seperti itu Anda dapat menggunakan kata kunci "super" untuk memanggil konstruktor ditimpa dari kelas induk.
Sintaks: -

1
2
3
4
5
super();
--or--
super(parameter list);



Ex: Jika konstruktor Anda seperti Demo (String Nama, int a)
Anda akan menentukan super ("Java", 5)
Jika digunakan, super kata kunci perlu baris pertama dari kode di konstruktor dari kelas anak.
Langkah 4) Uncomment Line # 26 dan menjalankan kode. Amati Output




0 komentar:

Posting Komentar

Anda bertanya, saya akan mencoba menjawabnya ~,~

 

Blogger news

Blogroll