You are on page 1of 6

H v tn: Nguyn Lm

MSSV: 09110059
Basics pf Objective-C Programming
CHNG 2
Inheritance( K Tha)
Mc Tiu
Trong chng ny bn s hc v mt trong s cc cha kha c bn lm cho
lp trnh hng i trng tr nn mnh m.
Thng qua cc khi nim v tha k, bn s xy dng trn nh ngha lp
hin c v ty chnh chng cho bn cc ng dng ring.
Gii Thiu Inheritance
Cho php lp trnh vin ty chnh mt lp cho mt mc ch c th m khng
thc s phi sa i cc lp ban u( lp cha).
Cc lp dn xut( lp con) c php thm cc phng thc hoc nh
ngha li chng
Cc lp con c th thm cc bin, nhng khng th nh ngha li chng
V D Inheritance
Lp C l lp con ca lp B nu khai bo c dng
Class C : B {

}
Cc lp con l mt chuyn ngnh ca lp cha.
Cc lp cha l mt s tng qut ca lp con.


Inheritance and Messages
Khi C l mt lp con ca B: i tng C c th p li tt c cc thng ip
ca i tng B cn p ng.
C th cc lp con ca B c th c cc phng thc v bin cha c nh
ngha trong B.
Object-C khng h tr a k tha
Inheritance Hierarchy(H Thng Cp Bc K Tha)
Mt lp c th c nhiu lp con v mi lp con c th c cc lp con ca
ring ca mnh.
Mt tp tt c cc lp con l ngun gc ca mt lp chung c gi l mt
h thng phn cp tha k.
Cc lp xut hin bn di mt lp c a ra trong h thng phn cp k
tha l con chu ca n.
Cc lp xut hin trn mt lp c a ra trong h thng phn cp k tha
l t tin ca n.

Inheritance

Mi quan h th bc gia cc lp.
Lp con k tha cch x l v d liu t lp cha.
Cc lp con c th s dng, lm tng thm hoc thay th cc phng thc
lp cha.
Inheritance and Visibility Rules (Vng Hiu Dng Ca K Tha)
Bin ring khng th nhn thy lp con hoc my khch
Bin chung c th nhn thy tt c cc lp con v my khch
Mt bin khai bo vi cc sa i hin th bo v ch c th c tham chiu
bi lp con ca lp v khng c cc lp khc
Inheritance class declaration( Khai Bo Lp K Tha)
Di y l mt khai bo cho mt i tng gi l ClassA vi mt
phng thc gi l initVar:
@interface ClassA : NSObject
{
Int x ;
}
-(void) initVar ;
@end
Inheritance class implementation( Thc Hin Cc Lp K Tha)
@interface ClassB: ClassA
-(void) printVar;
@end
@implementation ClassB
-(void) printVar
{
NSLog (@x = %i, x);
}
@end
Overriding methods( Phng Thc Ghi )
Bn khng th loi b hoc tr phng thc thng qua tha k. Tuy nhin,
bn c th thay i nh ngha ca mt phng thc k tha bng cch ghi
n.
Mt phng thc nh ngha vi tn ging nh ca mt tng cha thay th,
hoc ghi , cc tha k nh ngha.
Phng thc mi ca bn phi c kiu tr v ging nhau v ly s lng v
kiu ca cc i s l phng thc bn ang ghi .

Overriding the dealloc method( Phng Thc Ghi dealloc)
Bn khng ghi ln cc phng thc release-bn ghi ln dealloc thay
th. Release i khi cho ln b nh mt i tng s dng, v i khi n
khng.
Bn c th ghi ln cc phng thc dealloc k tha (n tha hng t
NSObject) v gii phng b nh ca ngun gc .
Nu bn quyt nh ghi ln dealloc, bn cng phi chc chn gii phng
b nh c a ln khng ch bi bn cc bin i tng ring, nhng bt
k nhng k tha cng tt
Bn gi tin nhn n nhanh thc hin mt phng thc ghi : [super
release];
Constructors(khai bo)
Khi mt lp con c to ra, Objective C s gi cc hm to ca lp cha u
tin v sau gi cc hm to ca lp con
Nu mt lp cha khng c mt hm to mc nh khng c i s, lp con
phi gi cc lp cha mt cch r rng
Using super Call Constructor( Gi nhanh khai bo)
Cc cuc gi n nhanh phi l ln u tin tuyn b trong cc hm to lp
con
V d:
- (id)init
{
self = [super init];
if (self) {
// Initialization code here.
}
return self;
}
Finding the Right Method
Khi bn gi mt thng ip ti mt i tng, bn c th t hi lm th no
cc phng thc chnh xc c chn p dng cho i tng.
u tin, cc hc m cc i tng trong c kim tra
Nu c, l phng thc c s dng. Nu n khng c nh ngha
, lp cha m c kim tra.
The @class Directive
Bn cn phi # import cc file, nhng bn c th lm iu trong cc file
thc thi (.m) ca bn., v s dng khai bo @class trong file tiu ca bn.
@class khng (thng) loi b s cn thit cc file #import, n ch cn di
chuyn cc yu cu xung gn hn vi ni m cc thng tin rt hu ch.
Abstract Classes( Cc Lp Tru Tng)
Cc lp tru tng ch c s dng nh lp cha
Cc lp hc c khai bo l lp tru tng ch khi h s khng bao gi
c khi to
Cc lp tru tng thng c mt hoc nhiu tru tng phng php
Abstract Methods( Phng Thc Tru Tng)
Phng thc tru tng khng c cc phn tt c v ch c h tiu khai
bo
Cch duy nht s dng mt lp tru tng l to ra mt lp m thc hin
mi phng thc tru tng
Cc lp c th l cc lp m thc hin tng phng thc tru tng trong
lp cha ca h
What Is Composition?
Bn s mang li cc thnh phn ring l li vi nhau v lm cho h lm vic
xy dng mt ci g ln hn
Trong Objective-C, bn b tr bng cch a cc con tr ti cc i tng
nh bin i tng
Thng qua thnh phn, mt bnh xe p bao gm mt bn p v lp. @
giao din bnh xe p: NSObject
@interface Unicycle : NSObject
{
Pedal *pedal;
Tire *tire;
}
@end // Unicycle
The id type
Gn kiu ng cho php chng ta khai bo mt bin c kh nng lu tr bt
k loi i tng
iu ny t c bng cch s dng loi id Objective-C
Cc loi id l mt kiu c bit, mc ch chung kiu d liu c th c ch
nh mt i tng ca bt k loi
id object1; object1 = [[SavingsAccount alloc] init];
[object1 setAccount: 4543455 andBalance: 3010.10];
object1 = [[CustomerInfo alloc] init]; [object1
displayInfo];

You might also like