15Java Interface-WPS Office
15Java Interface-WPS Office
aInt
erf
ace
Int
hist
utor
ial
,wewil
llearnaboutJavai
nterf
aces.Wewil
ll
ear
nhowt
oimpl
ementi
nter
faces
andwhentousethem indetai
lwit
hthehelpofexampl
es.
Anint
erf
acei
saf
ull
yabst
ractcl
ass.I
tincl
udesagr
oupofabst
ractmet
hods(
met
hodswi
thout
abody).
Weuset
hei
nter
facekey
wor
dtocr
eat
eani
nter
facei
nJav
a.Forexampl
e,
i
nter
faceLanguage{
publ
i
cvoi
dget
Type(
);
publ
i
cvoi
dget
Ver
sion(
);
Her
e,
Languagei
sani
nter
face.
I
tincl
udesabst
ractmet
hods:
get
Type(
)andget
Ver
sion(
).
I
mpl
ement
inganI
nter
face
Li
keabst
ractcl
asses,
wecannotcr
eat
eobj
ect
sofi
nter
faces.
Touseanint
erface,ot
hercl
assesmusti
mpl
ementi
t.Weuset
hei
mpl
ement
skey
wor
dto
i
mplementaninterf
ace.
Exampl
e1:
Jav
aInt
erf
ace
i
nter
facePol
ygon{
v
oidget
Area(
intl
engt
h,i
ntbr
eadt
h);
/
/impl
ementt
hePol
ygoni
nter
face
cl
assRect
angl
eimpl
ement
sPol
ygon{
/
/impl
ement
ati
onofabst
ractmet
hod
publ
i
cvoi
dget
Area(
intl
engt
h,i
ntbr
eadt
h){
Sy
stem.
out
.pr
int
ln(
"Thear
eaoft
her
ect
angl
eis"+(
lengt
h*br
eadt
h))
;
cl
assMai
n{
publ
i
cst
ati
cvoi
dmai
n(St
ri
ng[
]ar
gs){
Rect
angl
er1=newRect
angl
e()
;
r
1.get
Area(
5,6)
;
RunCode
Out
put
Thear
eaoft
her
ect
angl
eis30
Intheabov
eexample,wehavecr
eat
edani
nter
facenamedPol
ygon.Thei
nter
facecont
ainsan
abstr
actmethodget
Area(
).
Her
e,t
heRect
angl
ecl
assi
mpl
ement
sPol
ygon.And,
prov
idest
hei
mpl
ement
ati
onoft
he
get
Area(
)met
hod.
Exampl
e2:
Jav
aInt
erf
ace
/
/cr
eat
eani
nter
face
i
nter
faceLanguage{
v
oidget
Name(
Str
ingname)
;
/
/cl
assi
mpl
ement
sint
erf
ace
cl
assPr
ogr
ammi
ngLanguagei
mpl
ement
sLanguage{
/
/impl
ement
ati
onofabst
ractmet
hod
publ
i
cvoi
dget
Name(
Str
ingname){
Sy
stem.
out
.pr
int
ln(
"Pr
ogr
ammi
ngLanguage:
"+name)
;
cl
assMai
n{
publ
i
cst
ati
cvoi
dmai
n(St
ri
ng[
]ar
gs){
Pr
ogr
ammi
ngLanguagel
anguage=newPr
ogr
ammi
ngLanguage(
);
l
anguage.
get
Name(
"Jav
a")
;
RunCode
Out
put
Pr
ogr
ammi
ngLanguage:
Jav
a
Intheabov
eexample,wehavecr
eat
edani
nter
facenamedLanguage.Thei
nter
facei
ncl
udesan
abstr
actmethodget
Name().
Her
e,theProgrammi
ngLanguagecl
assi
mpl
ement
sthei
nter
faceandpr
ovi
dest
he
i
mplementati
onfort
hemethod.
I
mpl
ement
ingMul
ti
pleI
nter
faces
I
nJav
a,acl
asscanal
soi
mpl
ementmul
ti
plei
nter
faces.Forexampl
e,
i
nter
faceA{
/
/member
sofA
i
nter
faceB{
/
/member
sofB
cl
assCi
mpl
ement
sA,
B{
/
/abst
ractmember
sofA
/
/abst
ractmember
sofB
Ext
endi
nganI
nter
face
Similartoclasses,i
nter
facescanextendot
heri
nter
faces.Theext
endskey
wor
disusedf
or
extendinginterf
aces.Forexample,
i
nter
faceLi
ne{
/
/member
sofLi
nei
nter
face
/
/ext
endi
ngi
nter
face
i
nter
facePol
ygonext
endsLi
ne{
/
/member
sofPol
ygoni
nter
face
/
/member
sofLi
nei
nter
face
Here,
thePol
ygoninter
faceextendstheLinei
nterface.Now, i
fanyclassi
mplement
sPolygon,
it
shoul
dprovi
deimplementat
ionsforallt
heabstractmet hodsofbothLineandPol
ygon.
Ext
endi
ngMul
ti
pleI
nter
faces
Ani
nter
facecanext
endmul
ti
plei
nter
faces.Forexampl
e,
i
nter
faceA{
.
..
i
nter
faceB{
.
..
i
nter
faceCext
endsA,
B{
.
..
Adv
ant
agesofI
nter
facei
nJav
a
Nowt
hatweknowwhati
nter
facesar
e,l
et'
slear
naboutwhyi
nter
facesar
eusedi
nJav
a.
Si
mil
art
oabst
ractcl
asses,
int
erf
aceshel
pust
oachi
eveabst
ract
ioni
nJav
a.
Here,weknowgetArea()calcul
atestheareaofpol
ygonsbutthewayareai
scalcul
atedi
s
di
fferentf
ordi
ff
erentpolygons.Hence,t
heimplementat
ionofget
Area(
)isi
ndependentofone
another.
I
nter
facespr
ovi
despeci
fi
cat
ionst
hatacl
ass(
whi
chi
mpl
ement
sit
)mustf
oll
ow.
I
nourprev
iousexampl
e,wehaveusedget
Area(
)asaspeci
ficat
ioni
nsidet
heint
erf
acePol
ygon.
Thi
sisl
i
kesetti
ngarul
ethatweshoul
dbeabletogett
heareaofeverypol
ygon.
Nowanyclassthati
mpl
ement
sthePol
ygoni
nter
facemustpr
ovi
deani
mpl
ement
ati
onf
ort
he
get
Area(
)method.
I
nter
facesar
eal
sousedt
oachi
evemul
ti
plei
nher
it
ancei
nJav
a.Forexampl
e,
i
nter
faceLi
ne{
i
nter
facePol
ygon{
cl
assRect
angl
eimpl
ement
sLi
ne,
Pol
ygon{
}
Her
e, t
heclassRectangl
eisimpl
ement
ingt
wodi
ff
erenti
nter
faces.Thi
sishowweachi
eve
mul
tipl
einheri
tanceinJava.
Note:Al
lthemet hodsi
nsi
deani
nter
facear
eimpl
i
cit
lypubl
i
candal
lfi
eldsar
eimpl
i
cit
lypubl
i
c
st
aticfi
nal.Forexampl
e,
i
nter
faceLanguage{
/
/bydef
aul
tpubl
i
cst
ati
cfi
nal
St
ri
ngt
ype="
progr
ammi
ngl
anguage"
;
/
/bydef
aul
tpubl
i
c
v
oidget
Name(
);
def
aul
tmet
hodsi
nJav
aInt
erf
aces
Withther
eleaseofJav
a8,wecannowaddmet
hodswi
thi
mpl
ement
ati
oni
nsi
deani
nter
face.
Thesemethodsarecal
leddef
aul
tmet
hods.
Todecl
aredef
aul
tmet
hodsi
nsi
dei
nter
faces,
weuset
hedef
aul
tkey
wor
d.Forexampl
e,
publ
i
cdef
aul
tvoi
dget
Sides(
){
/
/bodyofget
Sides(
)
Whydef
aul
tmet
hods?
Let
'st
akeascenar
iot
ounder
standwhydef
aul
tmet
hodsar
eint
roducedi
nJav
a.
Suppose,
weneedt
oaddanewmet
hodi
nani
nter
face.
Wecanaddthemethodinouri
nterf
aceeasi
l
ywithouti
mplement
ati
on.However,
that'
snotthe
endoft
hest
ory.Al
lourcl
assesthati
mplementt
hatint
erf
acemustprov
ideanimplementat
ion
fort
hemet
hod.
Ifalargenumberofcl
asseswerei
mplementi
ngthi
sinterf
ace,weneedtotrackal
lthese
classesandmakechangestothem.Thi
sisnotonl
ytediousbuter
ror-
proneaswell
.
Tor
esol
vethi
s,Jav
aint
roduceddef
aul
tmet
hods.Def
aul
tmet
hodsar
einher
it
edl
i
keor
dinar
y
met
hods.
Let
'st
akeanexampl
etohav
eabet
terunder
standi
ngofdef
aul
tmet
hods.
Exampl
e:Def
aul
tMet
hodi
nJav
aInt
erf
ace
i
nter
facePol
ygon{
v
oidget
Area(
);
/
/def
aul
tmet
hod
def
aul
tvoi
dget
Sides(
){
Sy
stem.
out
.pr
int
ln(
"Icangetsi
desofapol
ygon.
")
;
/
/impl
ement
sthei
nter
face
cl
assRect
angl
eimpl
ement
sPol
ygon{
publ
i
cvoi
dget
Area(
){
i
ntl
engt
h=6;
i
ntbr
eadt
h=5;
i
ntar
ea=l
engt
h*br
eadt
h;
Sy
stem.
out
.pr
int
ln(
"Thear
eaoft
her
ect
angl
eis"+ar
ea)
;
/
/ov
err
idest
heget
Sides(
)
publ
i
cvoi
dget
Sides(
){
Sy
stem.
out
.pr
int
ln(
"Ihav
e4si
des.
")
;
/
/impl
ement
sthei
nter
face
cl
assSquar
eimpl
ement
sPol
ygon{
publ
i
cvoi
dget
Area(
){
i
ntl
engt
h=5;
i
ntar
ea=l
engt
h*l
engt
h;
Sy
stem.
out
.pr
int
ln(
"Thear
eaoft
hesquar
eis"+ar
ea)
;
cl
assMai
n{
publ
i
cst
ati
cvoi
dmai
n(St
ri
ng[
]ar
gs){
/
/cr
eat
eanobj
ectofRect
angl
e
Rect
angl
er1=newRect
angl
e()
;
r
1.get
Area(
);
r
1.get
Sides(
);
/
/cr
eat
eanobj
ectofSquar
e
Squar
es1=newSquar
e()
;
s1.
get
Area(
);
s1.
get
Sides(
);
RunCode
Out
put
Thear
eaoft
her
ect
angl
eis30
Ihav
e4si
des.
Thear
eaoft
hesquar
eis25
Icangetsi
desofapol
ygon.
I
ntheabov eexampl
e,wehavecreat
edanint
erf
acenamedPol
ygon.I
thasadef
aul
tmet
hod
get
Sides(
)andanabstractmet
hodgetAr
ea()
.
Her
e,wehav
ecr
eat
edt
wocl
assesRect
angl
eandSquar
ethati
mpl
ementPol
ygon.
TheRectangl
eclasspr
ovi
destheimplementat
ionoft
heget
Area(
)met
hodandov
err
idest
he
get
Sides()met
hod.However
,theSquarecl
assonlypr
ovi
desthei
mpl
ement
ati
onoft
hegetAr
ea(
)
method.
Now,
whi
l
ecal
l
ingt
heget
Sides(
)met
hodusi
ngt
heRect
angl
eobj
ect
,theov
err
iddenmet
hodi
s
cal
l
ed.Howev
er,
int
hecaseoft
heSquar
eobj
ect
,thedef
aul
tmet
hodi
scal
l
ed.
pr
ivat
eandst
ati
cMet
hodsi
nInt
erf
ace
TheJav
a8al
soaddedanot
herf
eat
uret
oincl
udest
ati
cmet
hodsi
nsi
deani
nter
face.
Simi
lartoacl
ass,
wecanaccessst
ati
cmet
hodsofani
nter
faceusi
ngi
tsr
efer
ences.For
example,
/
/cr
eat
eani
nter
face
i
nter
facePol
ygon{
st
ati
cMet
hod(
){.
.}
/
/accessst
ati
cmet
hod
Pol
ygon.
stat
icMet
hod(
);
Not
e:Wi
tht
her
eleaseofJav
a9,
pri
vat
emet
hodsar
eal
sosuppor
tedi
nint
erf
aces.
Wecannotcreat
eobject
sofaninter
face.Hence,
pri
vat
emet
hodsar
eusedashel
permet
hods
t
hatpr
ovidesuppor
ttoothermethodsinint
erf
aces.
Pr
act
ical
Exampl
eofI
nter
face
Let
'sseeamor
epr
act
ical
exampl
eofJav
aInt
erf
ace.
/
/Touset
hesqr
tfunct
ion
i
mpor
tjav
a.l
ang.
Mat
h;
i
nter
facePol
ygon{
v
oidget
Area(
);
/
/cal
cul
atet
heper
imet
erofaPol
ygon
def
aul
tvoi
dget
Per
imet
er(
int
..
.si
des){
i
ntper
imet
er=0;
f
or(
intsi
de:
sides){
per
imet
er+=si
de;
Sy
stem.
out
.pr
int
ln(
"Per
imet
er:
"+per
imet
er)
;
cl
assTr
iangl
eimpl
ement
sPol
ygon{
pr
ivat
einta,
b,c;
pr
ivat
edoubl
es,
area;
/
/ini
ti
ali
zi
ngsi
desofat
ri
angl
e
Tr
iangl
e(i
nta,
intb,
intc){
t
his.
a=a;
t
his.
b=b;
t
his.
c=c;
s=0;
}
/
/cal
cul
atet
hear
eaofat
ri
angl
e
publ
i
cvoi
dget
Area(
){
s=(
doubl
e)(
a+b+c)
/2;
ar
ea=Mat
h.sqr
t(s*
(s-
a)*
(s-
b)*
(s-
c))
;
Sy
stem.
out
.pr
int
ln(
"Ar
ea:
"+ar
ea)
;
cl
assMai
n{
publ
i
cst
ati
cvoi
dmai
n(St
ri
ng[
]ar
gs){
Tr
iangl
et1=newTr
iangl
e(2,
3,4)
;
/
/cal
l
sthemet
hodoft
heTr
iangl
ecl
ass
t
1.get
Area(
);
/
/cal
l
sthemet
hodofPol
ygon
t
1.get
Per
imet
er(
2,3,
4);
RunCode
Out
put
Ar
ea:
2.9047375096555625
Per
imet
er:
9
I
ntheabovepr
ogram,wehavecreat
edaninter
facenamedPol
ygon.I
tincl
udesadef
aul
t
methodget
Per
imeter
()andanabstr
actmethodgetAr
ea(
).
Wecancalcul
atetheperi
met
erofal
lpol
ygonsi
nthesamemannersowei
mpl
ement
edt
hebody
ofget
Per
imeter(
)inPoly
gon.
Now,
all
pol
ygonst
hati
mpl
ementPol
ygoncanuseget
Per
imet
er(
)tocal
cul
ateper
imet
er.
However
,therul
eforcal
cul
ati
ngthear
eai
sdi
ff
erentf
ordi
ff
erentpol
ygons.Hence,
get
Area(
)is
i
ncl
udedwi t
houti
mplementat
ion.
Anycl
asst
hati
mpl
ement
sPol
ygonmustpr
ovi
deani
mpl
ement
ati
onofget
Area(
).