Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 18

Chng 5- Lp Tru Tng Slide 1/18

Chng 5
LP TRU TNG
Abstract Class
Chng 5- Lp Tru Tng Slide 2/18
n tp
Tha k: K thut cho php ti s dng data v code
Lp con tha hng cc c im ca lp cha.
Trong Java, ch nh tha k bng t kha extends ( lp
con l m rng) ca lp cha.
Overloading method: K thut cho php trong mt lp c
cc hnh vi trng tn nhng khc ch k.
Overriding method: K thut cho php vit li code ca
hnh vi m lp con tha k t lp cha to ra s khac
bit.
a hnh trong OOP c c l nh k thut Overriding.
Khi p kiu (type casying) ln sang kiu nh c th b
trn tr.
Kim tra mt i tng c thuc v mt lp hay khng
bng toan1 t instanceof.
Tham s trong hm Java l tham s tr.
Chng 5- Lp Tru Tng Slide 3/18
Mc tiu
Gii thch c lp tru tng l g.
Hin thc c lp tru tng, han2h vi
tru tng bng Java.
Gii thch c im ca lp tru tng.
Chng 5- Lp Tru Tng Slide 4/18
Ni dung
5.1- Lp tru tng l g?
5.2- Hin thc lp tru tng v hnh vi
tru tng.
5.3- c im ca lp tru tng.
Chng 5- Lp Tru Tng Slide 5/18
5.1- Lp tru tng l g?
Xem kt qa ca vic khi qut ha sau:
class ANIMAL
void Travel();
class Bird
void Travel()
class Fish
void Travel()
class Snake
void Travel()
Bn c hnh
dung ni mt
ANIMAL di
chuyn nh th
no khng?
Bn c hnh dung ni
mt i tng thuc
cc lp ny di chuyn
nh th no khng?
Khng
Tru tng
C c th
Chng 5- Lp Tru Tng Slide 6/18
Lp tru tng- Abstract class
L kt qa ca vic khi qut ha qa cao n
ni khng bit vit code th no.
L lp c nhng hnh vi ch khai bo m khng
vit code. dnh code c th s c hin
thc cc lp dn xut ( lp c th hn).
T duy t nhin:
T cc i tng c th Lp c th.
T cc lp c th c cng tnh cht lp tru
tng.
Chng 5- Lp Tru Tng Slide 7/18
Lp tru tng -Bi tp ti lp
M t cc lp cho hnh trn, hnh ch nht, hnh vung, hnh tam
gic.
Dng k thut phn tch phn cp tha k, khi qut ha cc lp
ny sinh ra mt lp tru tng c hnhh vi tnh din tch v tnh
chu vi.
LAB:
Ci t cc lp ny. Vit chng trnh khai bo bin thuc lp tru
tng. ut din tch v chu vi ca 5 hnh khc nhau.

Din tch hnh tam gic khi bit ta 3 im (x1, y1), (x3, y3), (x3, y3):
x21=x2 - x1;
y21=y2 - y1;
x31=x3 - x1;
y31=y3 - y1;
Din tch = | y21*x31-x21*y31 | /2;
Chng 5- Lp Tru Tng Slide 8/18
Lp tru tng.
T duy theo li chuyn gia: Khai bo lp
tru tng trc ( hoc tp cc hnh vi
m ta gi l inteface hc sau) cc lp
c th hin thc cc hnh vi ny sau.
Lp cha l lp tru tng, lp con cha
hin thc cc hnh vi tru tng c
k tha t lp cha th lp con ny vn l
lp tru tng.
Chng 5- Lp Tru Tng Slide 9/18
5.2- Hin thc lp tru tng
C php khai bo lp tru tng
abstract class ClassName
{ <data>
abstract [modifier] Type MethodName (Args) ;
}
Kt hp cho php
abstract public
abstract protected
Kt hp KHNG cho php
abstract private
abstract static
abstract final
Chng 5- Lp Tru Tng Slide 10/18
Hin thc lp tru tng
C hnh vi
abstract m
lp khng
c ch th
abstract
Hnh vi khng c
ch th abstract
th phi c code
Chng 5- Lp Tru Tng Slide 11/18
Abstract class- Th d
Cha th vit code v lng 1 ngi =
lng c bn * h s
Chng 5- Lp Tru Tng Slide 12/18
5.3- c im ca lp tru tng.
Khng th
khi to mt
i tng
thuc lp
tru tng
(abstract) m
ch khi to
i tng
thuc lp c
th
(concrete).
Chng 5- Lp Tru Tng Slide 13/18
Tham kho lp cha ch n lp con
V bin i tng l tham
kho ch n i tng
nn mt bin thuc lp
cha nhng li ch n
mt lp con l iu
hon ton kh thi d
lp cha l lp tr tng
hay l lp c th.

Y L CCH DNG TNH
A HNH TRONG OOP
Chng 5- Lp Tru Tng Slide 14/18
Lp con cng l lp tru tng
Bin lp ng ch n
i tng lp chu

Chng 5- Lp Tru Tng Slide 15/18
Ch v kt hp abstract vi cc ch th khc
Chng 5- Lp Tru Tng Slide 16/18
TM TT
Lp tru tng- abstract class- l sn phm ca
qa trnh khi qut ha qa cao.
Lp tru tng l lp c hnh vi tru tng.
C php khai bo lp tru tng
abstract class A
{ ....
abstract [modifier] Type Method(args)
}
public, protected, friendly
Chng 5- Lp Tru Tng Slide 17/18
Tm tt
Lp c th (concrete class) l lp ch
cha cc hnh vi c th (c code).
Lp con ca mt lp tru tng m cha
c th ha mt hnh vi tru tng tha k
t lp cha th lp con ny cng l lp tru
tng.
Chng 5- Lp Tru Tng Slide 18/18
Cm n

You might also like