You are on page 1of 9

Hc vin quc t FPT

Trung tm o to Lp trnh vin Quc t FPT Aptech

Thuyt trnh OOP


( Hc k : DISM )

Lp C0809G
Tn ti :Abstract class vs Interface, What use ?

Hc vin quc t FPT


Trung tm o to Lp trnh vin Quc t FPT Aptech
Cc thnh vin :

Nguyn anh Tun Nguyn thanh T

Ni dung
Gii thiu v ti t vn Gii quyt vn Kt lun

Gii thiu v ti
Hc lp trnh Java v C# th khng ai l khng bit v Abstract Class v Interface.N l mt phn quan trng trong lp trnh hng i tng. Nhng khng hn ai cng bit cch vn dng chng vo gii quyt vn mt cch khoa hc v logic. Khi no th ta nn dng Abstract Class ? Khi no th s dng Interface ? Khi no th s dng c hai ? l nhng cu hi thng c t ra khi chng ta hc Abstract Class v Interface. Bui tho lun ngy hm nay chung ti s a ra cho cc bn mt vi kin v vic s dng Abstract Class v Interface mt cch hiu qu v khoa hc.

t vn

Khi no th s dng Abstract Class ? Mt lp c th c yu cu p ng nh mt khung lm vic chung (frameword) cung cp hnh ng (behavior) no cho cc lp khc. Mt khung lm vic chung nh vy c to bng t kha Abstract. Ta khng th khi to i tng t cc lp Abstract nhng ta c th k tha t cc lp Abstract.Lp con phi override cc phng thc tru tng c trong lp cha, nu khng th n ph c khai bo nh l mt Abstract method. Abstract class l lp tru tng ha v n c nh ngha ra cho cc cc tha k v ty bin bn di cho nn n khng th no khi to c. Abstract class c sinh ra trong qu trnh tru tng ha i tng ch n khng phi l lp hin thc no y.

t vn

Khi no th s dng Interface ? Interface l mt tp cc quy tc m cc kiu ci t n pi tun theo. C# cho php cc lp c th implement mt hoc nhiu Interface Mt Interface c nh ngha nh mt kiu tham chiu v tng t nh lp ngoi tr rng n ch c cc bin hng v cc phng thc tru tng.khng th to i tng t Interface.Interface c th c ci t bi cc lp khc hoc implement t cc Interface khc. Mt lp m ci t mt Interface th phi ci t tt c cc phng thc ca interface nu khng th pi c khai bo l abstract.

So Snh Abstract Class VS Interface Abstract Class


Abstract class c th k tha mt lp v multiple interface Abstract class c th khai bo constructors v destructors Abstract class c th c phng thc vi phn thn. Abstract class method c thc hin bng cch s dng t kha override

Interface
Interface c th tha k nhiu interface nhng khng th tha k mt lp Interface ko th khai bo constructor v destructor Interface khng th c cc phng thc vi phn thn Interface method cng c thc hin bng cch s dng t kha override

Abstract class l mt ty chn tt hn Interface l mt ty chn tt hn hn khi hn khi bn cn thc hin nhng bn cn khai bo nhng phng thc phng thc chung v khai bo nhng tru tng duy nht phng thc tru tng chung

Hng gii quyt


Interface l mt ty chn tt hn khi bn cn khai bo nhng phng thc tru tng duy nht. Abstract class l mt ty chn tt hn khi bn cn thc hin nhng phng thc chung v khai bo nhng abstract method chung. Chnh v vy m chng ti a ra cho cc bn 1 phng php kt hp c 2 u im trn ca Abstract class v Interface Design schema chung 1. Thit k interface trc 2. Thit kt lp abstract tha k t interface trn 3. Thit k lp thng t lp abstract C th khng c bc 1,2 ty vo nhu cu, phc tp

Kt lun

Cm n s quan tm ch lng nghe ca cc thy, c gio v ti ca chng em. Xin chc bui tho lun thnh cng v c kt qu tt.

Sau bui tho lun ny chng ti mong rng cc bn c th s dng abstract class v Interface nhiu hn trong cc bi tp . Rt mong s ng gp kin ca cc bn.

You might also like