Java Interface
မျက်နှာပြင်များ
Java တွင် abstraction ရရှိရန် နောက်တစ်နည်းမှာ interfaces များဖြစ်သည်။
An သည် လုံး ၀ အလွတ်သဘောဖြင့် ဆက်စပ်နည်းလမ်းများကို အုပ်စုဖွဲ့ရန် အသုံးပြု interface
သည့် လုံးဝ " abstract class " ဖြစ်သည်-
ဥပမာ
// interface
interface Animal {
public void animalSound(); // interface method (does not have a body)
public void run(); // interface method (does not have a body)
}
implements
အင်တာဖေ့စ်နည်းလမ်းများကို ဝင်ရောက်ကြည့်ရှုရန်၊ သော့ချက်စကားလုံး (အစား ) ဖြင့် အခြားအတန်းမှ အင်တာဖေ့စ်ကို (အမွေဆက်ခံထားသကဲ့သို့မျိုး) "အကောင်အထည်ဖော်" ရပါမည် extends
။ အင်တာဖေ့စ်နည်းလမ်း၏ကိုယ်ထည်အား "အကောင်အထည်ဖော်" အတန်းမှ ပံ့ပိုးပေးသည်-
ဥပမာ
// Interface
interface Animal {
public void animalSound(); // interface method (does not have a body)
public void sleep(); // interface method (does not have a body)
}
// Pig "implements" the Animal interface
class Pig implements Animal {
public void animalSound() {
// The body of animalSound() is provided here
System.out.println("The pig says: wee wee");
}
public void sleep() {
// The body of sleep() is provided here
System.out.println("Zzz");
}
}
class Main {
public static void main(String[] args) {
Pig myPig = new Pig(); // Create a Pig object
myPig.animalSound();
myPig.sleep();
}
}
အင်တာဖေ့စ်ပေါ်ရှိ မှတ်စုများ
- abstract classes များ ကဲ့သို့ အရာဝတ္ထုများဖန်တီးရန် အင်တာဖေ့စ ်များကို အသုံးပြု၍ မရပါ (အထက်ပါဥပမာတွင်၊ MyMainClass ရှိ "တိရစ္ဆာန်" အရာဝတ္ထုတစ်ခုကို ဖန်တီးရန် မဖြစ်နိုင်ပါ)
- အင်တာဖေ့စ်နည်းလမ်းများတွင် ကိုယ်ထည်မရှိပါ - ခန္ဓာကိုယ်ကို "အကောင်အထည်ဖော်" အတန်းမှ ပံ့ပိုးပေးပါသည်။
- အင်တာဖေ့စ်ကို အကောင်အထည်ဖော်ရာတွင်၊ သင်သည် ၎င်း၏နည်းလမ်းများအားလုံးကို အစားထိုးရပါမည်။
- Interface နည်းလမ်းများသည် default အနေ
abstract
နှင့် ဖြစ်သည်။public
- Interface attribute များသည် default အနေ
public
ဖြင့်static
နှင့်final
- အင်တာဖေ့စ်တစ်ခုတွင် constructor မပါဝင်နိုင်ပါ (အရာဝတ္ထုများကိုဖန်တီးရန်အသုံးမပြုနိုင်သောကြောင့်)
အင်တာဖေ့စ်ကို ဘာကြောင့်သုံးရသလဲ၊
1) လုံခြုံရေးရရှိရန် - အချို့သောအသေးစိတ်အချက်အလက်များကို ဝှက်ထားပြီး အရာဝတ္ထုတစ်ခု၏ အရေးကြီးသောအသေးစိတ်အချက်အလက်များကိုသာ ပြသပါ။
2) Java သည် "multiple inheritance" ကို မပံ့ပိုးပါ (အတန်းတစ်ခုသည် superclass တစ်ခုမှသာ အမွေဆက်ခံနိုင်သည်)။ သို့သော်၊ class သည် များစွာသော interfaces ကို အကောင်အထည်ဖော် နိုင်သောကြောင့် ၎င်းကို interfaces များဖြင့်အောင်မြင်နိုင်သည် ။ မှတ်ချက်- များစွာသော အင်တာဖေ့စ်များကို အကောင်အထည်ဖော်ရန်၊ ၎င်းတို့ကို ကော်မာဖြင့် ပိုင်းခြားပါ (အောက်ပါ ဥပမာကို ကြည့်ပါ)။
မျက်နှာပြင်အများအပြား
အင်တာဖေ့စ်များစွာကို အကောင်အထည်ဖော်ရန် ၎င်းတို့ကို ကော်မာဖြင့် ခွဲခြားပါ-
ဥပမာ
interface FirstInterface {
public void myMethod(); // interface method
}
interface SecondInterface {
public void myOtherMethod(); // interface method
}
class DemoClass implements FirstInterface, SecondInterface {
public void myMethod() {
System.out.println("Some text..");
}
public void myOtherMethod() {
System.out.println("Some other text...");
}
}
class Main {
public static void main(String[] args) {
DemoClass myObj = new DemoClass();
myObj.myMethod();
myObj.myOtherMethod();
}
}