Java Programming 13: Inheritance

person Myat Min Soefolder_openJava Programmingaccess_time September 5, 2016

Inheritance ကိုတိုက်ရိုက်ဘာသာပြန်လိုက်ရင်တော့ အမွေဆက်ခံခြင်းလို့ အဓိပ္ပာယ်ထွက်ပါလိမ့်မယ်။ တကယ်လဲ အမွေဆက်ခံတဲ့သဘောပါပဲ။ Inheritance ဟာ Object Oriented Programming ရဲ့အသက်ပဲဖြစ်ပါတယ်။ Inheritance ကြောင့် code ကို ကြိမ်ဖန်များစာပြန်ပြန်ရေးနေရာတာကို အကာအကွယ်ပေးပါတယ်။ Animal ဆိုတဲ့ Class အသစ်ယူပြီး အောက်ကအတိုင်းရေးလိုက်ပါ။
[java]
package tutorial;

public class Animal {

public void speak() {
System.out.println("Can’t Speak");
}

}
[/java]
Animal ဆိုတဲ့ class ထဲမှာ speak ဆိုတဲ့ method တစ်ခုပါဝင်ပါတယ်။ speak ကိုခေါ်လိုက်ရင် “Can’t Speak” ဆိုပြီး Output ပြမှာဖြစ်ပါတယ်။

Tutorial12 လို့နာမည်ပေးပြီး Class အသစ်ယူပါ။ main method ထဲမှာအောက်ကအတိုင်းရေးပြီး run ကြည့်ပါ။ Can’t Speak လို့ပေါ်လာမှာဖြစ်ပါတယ်။
[java]
Animal a = new Animal();
a.speak();
[/java]
ဒါကအရင်သင်ခန်းစာမှာပြောပြခဲ့ပြီးပါပြီ Animal ဆိုတဲ့ Class ကို Object ဆောက်ပါတယ်။ a က Animal Object ဖြစ်ပါတယ်။ a.speak(); ဆိုပြီး method ကိုခေါ်သုံးပါတယ်။ ဒါကြောင့် Can’t Speak ဆိုပြီး Output ထွက်လာတာပဲဖြစ်ပါတယ်။

Inheritance ကိုစမ်းသပ်ရန်အတွက် နောက်ထပ် Class အသစ်ဆောက်ပါ။ Dog လို့နာမည်ပေးလိုက်ပါ။ အောက်ကအတိုင်းရေးကြည့်ပါ။
[java]
package tutorial;

public class Dog extends Animal {

public void speak() {
System.out.println("Woof Woof");
}
}
[/java]
Tutorial12 Class ထဲမှာပဲ Dog ကို Object အသစ်တစ်ခုဆောက်ပြီး speak ကိုခေါ်ကြည့်ပါ။ ဒါဆိုရင် အသစ်ရေးလိုက်တ ဲ့ Woof Woof ဆိုတာကိုအလုပ်လုပ်မှာဖြစ်ပါတယ်။

နောက်ထပ်တစ်ခါ Fish ဆိုတဲ့ class တစ်ခုအသစ်ယူလိုက်ပါ။ အောက်ကအတိုင်းရေးလိုက်ပါ။
[java]
package tutorial;

public class Fish extends Animal {

public void speak() {
super.speak();
}
}
[/java]
Tutorial12 Class ထဲမှာပဲ Fish ကို Object အသစ်တစ်ခုဆောက်ပြီး speak ကိုထပ်ခေါ်ကြည့်ပါ။ Can’t Speak ဆိုပြီးပဲထွက်လာတာတွေ့ရပါမယ်။ Tutorial12 Class ကတော့ အောက်ကအတိုင်းဖြစ်နေပါပြီ။
[java]
package tutorial;

public class Tutorial12 {

public static void main(String[] args) {

Animal a = new Animal();
a.speak();

Dog d = new Dog();
d.speak();

Fish f = new Fish();
f.speak();
}
}
[/java]
ဒီနေရာမှာ Fish class ထဲက super အကြောင်းပြောချင်ပါတယ်။ Dog နဲ့ Fish နှစ်ခုလုံးက Animal ကို extends လုပ်ထားတာပဲဖြစ်ပါတယ်။ ဒါကြောင့် Animal ကို parent class လို့ခေါ်ပြီး Dog နဲ့ Fish ကို child class လို့ခေါ်ပါတယ်။ parent class ကို super class လို့လဲခေါ်ပါတယ်။ child class ကို sub class လို့လဲခေါ်ပါတယ်။ Fish class ထဲက speak method ထဲမှာ super.speak(); ဆိုပြီးခေါ်ထားပါတယ်။ ဒါကတော့ super class ဖြစ်တဲ့ Animal class ထဲက speak ကိုအလုပ်လုပ်ခိုင်းလိုက်တာပဲဖြစ်ပါတယ်။ Fish ရဲ့ speak ကိုခေါ်တာနဲ့ Animal ရဲ့ speak ကိုခေါ်တာပဲဖြစ်ပါတယ်။

နောက်တစ်ခုထပ်စမ်းဖို့ Turtle ဆိုတဲ့ Class ဆောက်ပြီး Animal ကိုပဲ extends ထပ်လုပ်လိုက်ပါ။ ဒီတစ်ခါတော့ ဘာ method မှ မထည့်ပါနဲ့။ Tutorial12 Class ထဲမှာ Turtle Object ဆောက်ပြီး speak လုပ်ကြည့်ပါ။ Can’t Speak ဆိုတာပဲထွက်လာပါလိမ့်မယ်။ Turtle ထဲက speak က super class ဖြစ်တဲ့ Animal ထဲက speak ကိုတိုက်ရိုက်ခေါ်သုံးပါတယ်။ ဒါပေမဲ့ child class ကို object ဆောက်လိုက်တဲ့အခါ class ၁ ခုကိုပဲဆောက်ပါတယ်။ hild နဲ့ super ကို ၁ ခုစီဆောက်တာမဟုတ်ပါဘူး။ child ကိုဆောက်ထဲက child ထဲမှာ super ရဲ့ attribute တွေအကုန်ပါလာတာပဲဖြစ်ပါတယ်။
[java]
package tutorial;

public class Turtle extends Animal {}
[/java]
[java]
package tutorial;

public class Tutorial12 {

public static void main(String[] args) {

Animal a = new Animal();
a.speak();

Dog d = new Dog();
d.speak();

Fish f = new Fish();
f.speak();

Turtle t = new Turtle();
t.speak();
}
}
[/java]

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>