Khi tạo một đối tượng ở lớp thừa kế thì nó sẽ cấp phát bộ nhớ cho tất cả các trường của cả lớp cơ sở và lớp dẫn xuất. 33[r]
Trang 1BÀI 5
KẾ THỪA, ĐA NHIỆM TRONG C#
GV Chử Đức Hoàng
Trang 2v1.0011106202 2
TÌNH HUỐNG DẪN NHẬP
bằng ngôn ngữ lập trình C# thì các vấn đề như: tránh trùng lặp khi phải viết lại nhiều đoạn chương trình giống nhau trong các lớp, khả năng tái sử dụng lại chương trình trong các lớp là vấn đề rất được quan tâm
lý thực thi các luồng công việc thực hiện bởi ngôn ngữ lập trình để thực hiện các phần công việc khác nhau mà người dùng yêu cầu
lý khi có sự xung đột xảy ra giữa các luồng trong C#?
Trang 3MỤC TIÊU
Trình bày được các khái niệm về kế thừa trong C#
Trình bày được khái niệm về luồng và đa nhiệm trong C#
Xây dựng một chương trình C# đơn giản sử dụng tính kế thừa
Xây dựng một chương trình C# sử dụng tính đa nhiệm
Trang 4v1.0011106202 4
NỘI DUNG
1.1.1 Giới thiệu chung
1
1.1.2 Đơn kế thừa
2
1.1.3 Đa kế thừa
3
1.1.4 Tính đa hình
4
2.2.1 Khái niệm luồng
5
2.2.3 Ứng dụng đa nhiệm
7
2.2.2 Tạo luồng
6
Trang 51.1.1 GIỚI THIỆU CHUNG
nguồn đã viết trong lớp có sẵn
nhưng chúng tồn tại trong một mạng lưới sự phụ thuộc và quan hệ lẫn nhau
với nhau bởi vì chúng ta tạo ra một cây quan hệ
Đặc biệt hoá là những nhánh của tổng quát hoá
Nếu di chuyển lên trên cùng thì được trường hợp tổng quát hóa
Nếu di chuyển xuống thì được trường hợp đặc biệt hóa
Trang 6v1.0011106202 6
lớp khác
<Bổ từ truy cập> class <Tên lớp kế thừa>:<Tên lớp cơ sở>
1.1.2 ĐƠN KẾ THỪA
id
Trang 7Đặc điểm
phương thức và biến thành viên của lớp cơ sở
1.1.2 ĐƠN KẾ THỪA (tiếp theo)
Trang 8v1.0011106202 8
Ví dụ:
1 class Student
3 string name;
4 int age;
5 public void Birthday() { age++; }
6 int id;
7 public double Calpoint();
9 class Employee
11 string name;
12 int age;
13 public void Birthday() { age++; }
14 double salary;
15 public double Calsalary();
17 class Person
18 {
19 string name;
20 int age;
21 public void Birthday() { age++; }
22 }
23 class Student : Person
25 int id;
26 public double Calpoint();
28 class Employee : Person
30 double salary;
31 public double Calsalary();
Lặp lại giống nhau
1.1.2 ĐƠN KẾ THỪA (tiếp theo)
Trang 9Cấp phát bộ nhớ
Khi tạo một đối tượng ở lớp thừa kế thì nó sẽ cấp phát bộ nhớ cho tất cả các trường của
cả lớp cơ sở và lớp dẫn xuất
33 class Person
34 {
35 string name;
36 int age;
37 .
38 }
39 class Student : Person
40 {
41 int id ;
42 .
43 }
44 Public static void
Main()
45 {
46 Student s = new
Student();
47 }
id
1.1.2 ĐƠN KẾ THỪA (tiếp theo)
Trang 10v1.0011106202 10
Thực thi phương thức lớp cơ sở
49 class Person
50 {
51 public void Birthday()
52 {
53 age++;
54 }
55 .
56 }
57 class Student : Person
58 {
59 .
60 }
61 Public static void Main()
62 {
63 Student s = new Student();
64 s.Birthday();
65 }
Gọi phương thức lớp cơ sở từ đối tượng của lớp kế thừa
khoá “base”
1.1.2 ĐƠN KẾ THỪA (tiếp theo)