Qhov Tseem Ceeb Qhov Sib Txawv - Cov cuab yeej cuab tam vs Interface hauv Java
Java yog hom lus programming tsim los ntawm Sun Microsystems. Java tuaj yeem siv los tsim ntau yam kev siv. Nws yog ntau hom lus uas txhawb nqa cov khoom taw qhia, tsim qauv thiab lwm yam. Lub ntsiab kom zoo dua ntawm Java yog tias nws txhawb nqa Object-Oriented programming (OOP). Tus programmer tuaj yeem tsim cov chav kawm thiab khoom siv. Muaj plaub tus ncej hauv OOP. Lawv yog cov qub txeeg qub teg, polymorphism, abstraction thiab encapsulation. Cov cuab yeej cuab tam thiab kev sib txuas yog cuam tshuam nrog OOP. Qhov sib txawv tseem ceeb ntawm qhov qub txeeg qub teg thiab kev sib cuam tshuam yog qhov qub txeeg qub teg yog los muab cov chav kawm tshiab los ntawm cov chav kawm uas twb muaj lawm thiab qhov kev sib tshuam yog siv cov chav kawm paub daws teeb meem thiab ntau yam qub txeeg qub teg.
Dab tsi yog qhov cuab yeej cuab tam hauv Java?
Txoj kev cuab yeej cuab tam tuaj yeem ua tiav cov lej siv tau. Cov cuab yeej cuab tam pab rov qab siv cov yam ntxwv thiab cov txheej txheem ntawm cov chav kawm uas twb muaj lawm. Cov txheej txheem ntawm kev muab cov chav kawm tshiab siv cov chav kawm qub hu ua qub txeeg qub teg. Cov chav kawm qub yog hu ua niam txiv lossis chav kawm super. Cov chav kawm uas tau muab los no yog hu ua cov chav kawm me me lossis chav kawm sub.
Lub syntax ntawm Java qub txeeg qub teg yog raws li nram no.
class subclass_name txuas ntxiv superclass_name {
variable tshaj tawm;
txoj kev tshaj tawm;
}
Txoj kev xav tuaj yeem piav qhia siv tus piv txwv hauv qab no. Xav tias muaj ib chav hu ua A raws li hauv qab no.
public class A{
public void sum(){
System.out.println("Sum");
}
}
Yog tias peb xav ntxiv ib txoj hauv kev tshiab yam tsis hloov cov chav kawm uas twb muaj lawm, peb ua tau raws li hauv qab no.
public class B{
public void sub(){
System.out.println(“Sub”);
}
}
Programmer siv tau qub txeeg qub teg los siv chav A sum().
public class B txuas hoob A{
public void sub(){
System.out.println(“Sub”);
}
}
Hauv lub luag haujlwm tseem ceeb, nws tuaj yeem tsim ib qho khoom ntawm B thiab hu rau sub(), uas yog nyob rau hauv chav kawm B thiab sum(), uas yog nyob rau hauv chav kawm A siv qub txeeg qub teg.
public static void main(String args){
B obj=new B();
obj.sub();
obj.sum();
}
Muaj ntau hom qub txeeg qub teg. Lawv yog ib tug qub txeeg qub teg, ntau yam qub txeeg qub teg, ntau theem qub txeeg qub teg, thiab hierarchical qub txeeg qub teg. Hauv ib qho qub txeeg qub teg, muaj ib chav kawm hauv paus thiab ib chav muab tau los. Hauv ntau qib qub txeeg qub teg, muaj peb chav kawm xws li, chav kawm hauv paus, chav kawm nruab nrab thiab qib muab tau los. Cov chav kawm nruab nrab tau txais los ntawm cov chav kawm hauv paus, thiab cov chav kawm tau txais los ntawm cov chav kawm nruab nrab. Nyob rau hauv hierarchical qub txeeg qub teg, muaj ib tug hauv paus chav kawm thiab ntau derived chav kawm. Muaj ib hom tshwj xeeb hu ua Hybrid qub txeeg qub teg. Nws yog kev sib txuas ntawm ob lossis ntau hom kev qub txeeg qub teg.
Daim duab 01: Inheritance
Nyob hauv ntau qhov qub txeeg qub teg muaj ntau chav hauv paus thiab ib chav muab tau los. Nco ntsoov tias chav kawm A thiab B yog cov chav kawm hauv paus. Class C yog chav kawm muab los. Yog tias ob chav kawm A thiab B muaj tib txoj kev thiab tus programmer hu cov qauv ntawd los ntawm cov chav kawm muab los, nws yuav ua rau muaj teeb meem tsis meej. Inheriting ob chav kawm tuaj yeem ua rau muaj qhov yuam kev hauv lub sijhawm. Yog li ntawd, ntau yam qub txeeg qub teg tsis txaus siab hauv Java. Ib qho interface tuaj yeem siv los daws qhov teeb meem.
Dab tsi yog Interface hauv Java?
Abstraction yog txheej txheem ntawm kev zais cov ntsiab lus ntawm kev siv thiab tso tawm tsuas yog cov haujlwm ua haujlwm rau tus neeg siv. Abstraction tuaj yeem ua tiav siv Cov Chav Kawm Abstract lossis Interfaces. Ib txoj kev paub daws teeb meem yog ib txoj kev uas tsis muaj kev siv. Ib chav kawm uas tsawg kawg yog ib txoj kev paub daws teeb meem yog chav kawm paub daws teeb meem. Piv txwv ntawm chav kawm paub daws teeb meem yog raws li hauv qab no.
abstract hoob A{
abstract void sum();
}
Xav tias muaj ob chav kawm paub daws teeb meem xws li A thiab B. Txhawm rau siv txoj kev paub daws teeb meem ntawm A thiab B, chav kawm C tshiab yog tsim. Tom qab ntawd chav kawm C yuav tsum txuas ntxiv ob qho tib si A thiab B., Tab sis ntau yam qub txeeg qub teg tsis tau txais kev txhawb nqa hauv Java. Yog li ntawd, yuav tsum tau siv interfaces. Interfaces tuaj yeem siv los tshaj tawm txoj hauv kev, tab sis nws tsis tuaj yeem txhais cov txheej txheem. Nws tsis tuaj yeem tsim cov khoom siv interfaces. Chav C yuav tsum siv txhua txoj hauv kev hauv interface A thiab B.
interface A{
void sum();
}
interface B{
void sub();
}
class C siv A, B{
public void sum(){
System.out.println("Summation");
}
public void sub(){
System.out.println(“Subtraction”);
}
}
Tam sim no, hauv txoj haujlwm tseem ceeb nws tuaj yeem tsim cov khoom ntawm C thiab hu rau ob txoj hauv kev.
public static void main (String args) {
C obj=new C();
obj.sum();
obj.sub();
}
Yog li, kev sib txuas siv tau los siv ntau yam qub txeeg qub teg.
Lwm qhov kev siv interfaces yog tias nws muab kev ruaj ntseg. Xa mus rau tus lej hauv qab no.
interface A {
void sum ();
}
class B siv A {
public void sum () {
System.out.println("Summation");
}
public void multiply () {
System.out.println("Multiplication");
}
}
Thaum tsim ib qho khoom ntawm B, nws tuaj yeem hu rau ob txoj hauv kev sum () thiab multiply (). Yog hais tias tus programmer xav txwv tsis pub siv multiply () muaj nuj nqi, nws ua tau raws li hauv qab no.
public static void main(String args){
A obj=new B();
obj.sum();
}
A obj=new B(); yuav tsim ib yam khoom. Nws yog hom A thiab lub cim xeeb tau faib ua B. Nws tuaj yeem hu ua sum() tab sis tsis tuaj yeem ua tiav ntau (). Qhov kev txwv no yog ua tiav siv cov interfaces.
Dab tsi yog qhov zoo sib xws ntawm Cov cuab yeej cuab tam thiab Interface hauv Java?
- Ob lub ntsiab lus muaj feem cuam tshuam rau Object-Oriented Programming
- Ob leeg sawv cev IS-A kev sib raug zoo.
Dab tsi yog qhov sib txawv ntawm Cov cuab yeej cuab tam thiab kev cuam tshuam hauv Java?
Inheritance vs Interface hauv Java |
|
Txoj kev cuab tam yog OOP lub tswv yim los muab cov chav kawm tshiab los ntawm cov chav kawm uas twb muaj lawm. | Interface yog ib lub tswv yim hauv OOP los siv kev paub daws teeb meem thiab ntau yam qub txeeg qub teg. |
Txoj hauv kev muab cov lej rov siv tau. | Interfaces muab abstraction thiab ntau yam qub txeeg qub teg. |
Summary – Inheritance vs Interface in Java
Java yog ntau hom lus programming uas txhawb nqa cov phiaj xwm taw qhia. Inheritance thiab interfaces muaj feem xyuam rau cov khoom-oriented programming. Qhov txawv ntawm qhov qub txeeg qub teg thiab kev sib txuas yog qhov qub txeeg qub teg yog los muab cov chav kawm tshiab los ntawm cov chav kawm uas twb muaj lawm thiab cov kev sib tshuam yog siv cov chav kawm paub daws teeb meem thiab ntau yam qub txeeg qub teg.
Download the PDF Version of Inheritance vs Interface in Java
Koj tuaj yeem rub tawm PDF version ntawm kab lus no thiab siv nws rau offline hom phiaj raws li daim ntawv ceeb toom. Thov rub tawm PDF version ntawm no Qhov txawv nruab nrab ntawm cov cuab yeej cuab tam thiab Interface hauv Java