Chương 4:
Kế thừa – Đa hình
Giảng viên: Ths. Nguyễn Thị Khiêm Hòa
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Nội dung
Thiết kế đối tượng
Kế thừa
Đa hình
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Lợi thế của lập trình hướng đối tượng
1
Lấy đối tượng làm trung tâm
2
Che giấu dữ liệu
3
Linh hoạt
4
B
x, y, z
a, b, c
Khái niệm kế thừa
Định nghĩa lớp mới dựa trên những lớp đã có.
Lớp cơ sở: lớp dùng để định nghĩa lớp mới.
Lớp dẫn xuất: lớp được định nghĩa từ lớp đã có.
Lớp dẫn xuất thừa hưởng TẤT CẢ từ lớp cơ sở.
O
x, y, z
A
x, y, z
a, b, c
A
x, y, z
B
x, y, z
u, v, w
B
GVCN
Công việc:
Giảng dạy.
Tính lương.
Sinh hoạt chủ nhiệm.
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Ví dụ kế thừa
class GiaoVien
{
protected string Hotengv;
protected double luonggv;
protected int gvnghi;
public GiaoVien(string HoTen,double Luong, int nn)
{
Hotengv = HoTen;
luonggv = luong;
gvnghi = nn;
}
public void giangDay(){}
public double tinhLuong(){}
}
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Các lớp dẫn xuất là thành phần chuyên biệt hóa
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Gọi Constructor của lớp cơ sở
Từ khóa base được dùng trong lớp dẫn xuất để gọi
constructor của lớp cơ sở
public class Animal
{
protected string _name;
public Animal(string name)
{
_name = name;
}
}
public class Cat : Animal
{
public Cat (string name): base(name)
{}
}
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Bài tập
Thực hiện
Animal
Phương
thức
Hành vi
Elephant
Eat ()
Eat Grass
Cat
Eat ()
Eat Mouse
Mouse
Eat ()
Eat Cheese
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Xây dựng phương thức ảo
Xây dựng phương thức ảo
public class Animal
{ public virtual string Eat()
{
return string.Empty;
}
}
public class Cat : Animal
{
public override string Eat()
{
return “Mouse”;
}
}
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Sử dụng thành phần của lớp cơ sở
trong lớp dẫn xuất
Dùng từ khóa base
public class Cat : Animal
{
public override string Eat()
{
Lớp và phương thức trừu tượng (Abstract)
public abstract class Animal
{
…
public abstract void Eat();
…
}
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Bài tập
Thực hiện
Xây dựng lớp Animal là lớp trừu tượng, và
định nghĩa lại trong các lớp dẫn xuất các
phương thức này.
1 hour
Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM
Bài tập
Thực hiện
Xây dựng các lớp đối tượng liên quan
tài khoản ngân hàng (Bank Account)
1 hour