OOP in C# - GV: Phm Đình Sc – dinhsac@gmail.com
1
K
Kế
ếth
th
a
a (
(inheritance)
inheritance)
1
Xây dng lp
tính kếtha
Xây d
Xây d
ng l
ng l
p
p
c
có
ót
tí
ính k
nh kế
ếth
th
a
a
OOP in C# - GV: Phm Đình Sc – dinhsac@gmail.com
2
Kh
Khá
ái ni
i ni
m k
m kế
ếth
th
a trong C#
a trong C#
¾
¾K
Kế
ếth
th
a l
a là
à cơ ch
cơ chế
ếcho ph
cho phé
ép đ
p đ
nh ngh
nh nghĩ
ĩa m
a m
t
t
l
l
p m
p m
i (k
i (kế
ếth
th
a t
a t
l
l
p cha)
p cha)
¾
¾Sau đ
Sau đó
óxây d
xây d
ng thêm c
ng thêm cá
ác thu
c thu
c t
c tí
ính v
nh và
àc
cá
ác
c
phương th
phương th
c riêng c
c riêng c
a l
a l
p đ
p đó
ó.
.
¾
¾L
L
p cha trong s
p cha trong s
k
kế
ếth
th
a đư
a đư
c g
c g
i l
i là
àl
l
p
p
cơ s
cơ s
(base class)
(base class)
¾
¾L
L
p con trong s
p con trong s
k
kế
ếth
th
a đư
a đư
c g
c g
i l
i là
àl
l
p
p
d
d
n xu
n xu
t (derived class)
t (derived class)
¾
¾Derived class
Derived class có hu hết các thành phn
ging như lp cơ str????
private,constructor, static, destructor
OOP in C# - GV: Phm Đình Sc – dinhsac@gmail.com
3
Kh
Khá
ái ni
i ni
m k
m kế
ếth
th
a trong C#
a trong C#
¾Quan h“là 1”: Kếtha được sdng
thông dng nht để biu din quan h"là 1"
VD:
Mt sinh viên là mt con người
Mt tam giác là mt đa giác
¾Kếtha thường được dùng theo 2 cách:
Để phn ánh mi quan hgia các lp
Để phn ánh schia s mã chương trình
gia các lp
OOP in C# - GV: Phm Đình Sc – dinhsac@gmail.com
¾Lp Con Gà:
chân
mt
cánh
Biết chy
Biết ng
Biết bay
Biết vy cánh
¾Lp Con Chó:
chân
mt
đuôi
Biết chy
Biết ng
Biết sa
Biết vy đuôi
4
Kh
Khá
ái ni
i ni
m k
m kế
ếth
th
a trong C#
a trong C#
Mã lnh
btrùng
Mã lnh
btrùng
OOP in C# - GV: Phm Đình Sc – dinhsac@gmail.com
¾Lp động vt:
chân
mt
Biết chy
Biết ng
5
Kh
Khá
ái ni
i ni
m k
m kế
ếth
th
a trong C#
a trong C#
¾Lp Con Gà:
cánh
Biết bay
Biết vy cánh
¾Lp Con Chó:
đuôi
Biết sa
Biết vy đuôi
OOP in C# - GV: Phm Đình Sc – dinhsac@gmail.com
6
Syntax
Syntax
¾ pháp định nghĩa lp dn xut (lp con):
class TênLpCon :TênLpCha
{// Thân lp con
}
Hoc
class TênLpDnXut :TênLpCơS
{// Thân lp dn xut
}
class DerivedClass:BaseClass
{// body of derived class
}
OOP in C# - GV: Phm Đình Sc – dinhsac@gmail.com
7
VD
VD
// Lp cơ sPoint2D
class Point2D
{
public int x,y;
public void Xuat2D()
{
Console.WriteLine("({0}, {1} )", x, y);
}
}
OOP in C# - GV: Phm Đình Sc – dinhsac@gmail.com
8
VD
VD
// Lop dan xuat Point3D ke thua tu lop Point2D
class Point3D:Point2D
{
public int z;
public void Xuat3D()
{
Console.WriteLine("({0}, {1} , {2})", x, y, z);
}
}
OOP in C# - GV: Phm Đình Sc – dinhsac@gmail.com
9
VD
VD
public static void Main()
{
Point2D p2 = new Point2D();
p2.x = 1;
p2.y = 2;
p2.Xuat2D();
Point3D p3 = new Point3D();
p3.x = 4;
p3.y = 5;
p3.z = 6; // ?
p3.Xuat3D();
p3.Xuat2D(); // ?
Console.ReadLine();
}
OOP in C# - GV: Phm Đình Sc – dinhsac@gmail.com
10
VD:
VD:
Xây dng Person class và Student class ?