1. Trang chủ
  2. » Công Nghệ Thông Tin

Chương 9- Kế thừa

59 232 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 59
Dung lượng 587,55 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nguyễn Tấn Trần Minh Khang 1.3 QUAN HỆ NHIỀU NHIỀU m-n  Khái niệm: hai lớp đối tượng được gọi là quan hệ nhiều-nhiều với nhaukhi một đối tượng thuộc lớp này quan hệ với nhiều đối tượng

Trang 1

Chương 09 - 1

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

Chương 9

KẾ THỪA

Trang 2

0 MỤC TIÊU

 Hiểu được các loại quan hệ?

 Hiểu được kế thừa trong lập trình

hướng đối tượng là gì?

 Hiểu được khái niệm cây kế thừa

 Hiểu được khái niệm sơ đồ lớp

Trang 3

Chương 09 - 3

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

1.QUAN HỆ

Người ta chia các quan hệ thành

những loại như sau:

 Quan hệ một một (1-1)

 Quan hệ một nhiều (1-n)

 Quan hệ nhiều nhiều (m-n)

 Quan hệ đặt biệt hóa, tổng quát hóa

Trang 4

1.1 QUAN HỆ MỘT MỘT (1-1)

Khái niệm: Hai lớp đối tượng được

gọi là quan hệ một-một với nhau khimột đối tượng thuộc lớp này quan hệvới một đối tượng thuộc lớp kia và mộtđối tượng thuộc lớp kia quan hệ duynhất với một đối tượng thuộc lớp này

 Hình vẽ

 Trong hình vẽ trên ta nói: một đốitượng thuộc lớp A quan hệ với một đốitượng thuộc lớp B và một đối tượnglớp B quan hệ duy nhất với một đốitượng thuộc lớp A

Trang 5

Chương 09 - 5

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

1.1 QUAN HỆ MỘT MỘT (1-1)

 Ví dụ minh họa

LOPHOC Chủ nhiệm GIAOVIEN

VO Hôn nhân CHONG

Trang 6

1.2 QUAN HỆ MỘT NHIỀU (1-n)

Khái niệm: Hai lớp đối tượng được

gọi là quan hệ một-nhiều với nhau khimột đối tượng thuộc lớp này quan hệvới nhiều đối tượng thuộc lớp kia vàmột đối tượng lớp kia quan hệ duynhất với một đối tượng thuộc lớp này

 Hình vẽ

 Trong hình vẽ trên ta nói: một đốitượng thuộc lớp A quan hệ với nhiềuđối tượng thuộc lớp B và một đốitượng lớp B quan hệ duy nhất với mộtđối tượng thuộc lớp A

Trang 7

Chương 09 - 7

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

Trang 8

1.2 QUAN HỆ MỘT NHIỀU (1-n)

 Ví dụ minh họa:

Trang 9

Chương 09 - 9

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

1.3 QUAN HỆ NHIỀU NHIỀU

(m-n)

Khái niệm: hai lớp đối tượng được

gọi là quan hệ nhiều-nhiều với nhaukhi một đối tượng thuộc lớp này quan

hệ với nhiều đối tượng thuộc lớp kia

và một đối tượng lớp kia cũng có quan

hệ với nhiều đối tượng thuộc lớp này

 Hình vẽ

 Trong hình vẽ trên ta nói: một đốitượng thuộc lớp A quan hệ với nhiềuđối tượng thuộc lớp B và một đốitượng lớp B cũng có quan hệ vớinhiều đối tượng thuộc lớp A

Trang 10

1.3 QUAN HỆ NHIỀU NHIỀU

(m-n)

 Ví dụ minh họa:

BACSI Khám bệnh BENHNHAN

Trang 11

Chương 09 - 11

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

1.3 QUAN HỆ NHIỀU NHIỀU

(m-n)

 Ví dụ minh họa:

Trang 12

1.4 QUAN HỆ ĐẶC BIỆT

HÓA-TỔNG QUÁT HOÁ

Khái niệm: hai lớp đối tượng được

gọi là quan hệ đặc biệt hóa-tổng quáthóa với nhau khi, lớp đối tượng này làtrường hợp đặc biệt của lớp đối tượngkia và lớp đối tượng kia là trường hợptổng quát của lớp đối tượng này

 Hình vẽ

A B

Trang 13

Chương 09 - 13

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

1.4 QUAN HỆ ĐẶT BIỆT

HÓA-TỔNG QUÁT HOÁ

 Hình vẽ

 Trong hình vẽ trên ta nói: lớp đốitượng B là trường hợp đặc biệt củalớp đối tượng A và lớp đối tượng A làtrường hợp tổng quát của lớp đốitượng B

A B

Trang 14

1.4 QUAN HỆ ĐẶT BIỆT

HÓA-TỔNG QUÁT HOÁ

 Ví dụ 1:

TAMGIAC

TAMGIACCAN

Trang 15

Chương 09 - 15

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

1.4 QUAN HỆ ĐẶT BIỆT

HÓA-TỔNG QUÁT HOÁ

 Ví dụ 2:

DONGVAT

HEO NGUOI

Trang 16

2 CÂY KẾ THỪA

Khái niệm: Cây kế thừa là một cây đa

nhánh thể hiện mối quan hệ đặc biệthóa-tổng quát hóa giữa các lớp trong

Trang 17

Chương 09 - 17

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

2 CÂY KẾ THỪA (tiếp)

Trang 18

3 SƠ ĐỒ LỚP

Khái niệm: Sơ đồ lớp là sơ đồ thể

hiện tất cả các mối quan hệ giữa cáclớp trong hệ thống, chương trình

 Ví dụ minh họa: Hãy vẽ sơ đồ lớp cho các lớp đối tượng sau:

 Lớp CNV: là những người làm việc trong nhà trường nhưng ko trực tiếp đứng lớp Ví dụ: Bảo vệ, lao công, bảo mẫu, …

Trang 19

Chương 09 - 19

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

3 SƠ ĐỒ LỚP

Trang 21

Chương 09 - 21

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

4.1 THẾ GIỚI THỰC

 Trong hình vẽ trên ta nói A và B

có quan hệ đặc biệt hoá, tổng quát hoá với nhau Trong đó B là trường hợp đặt biệt của A, và A

là trường hợp tổng quát của B.

A B

Trang 22

 Lớp đối tượng B được gọi là lớp

dẫn xuất từ lớp đối tượng A.

A B

Trang 23

Chương 09 - 23

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

4.3 PHẠM VI TRUY XUẤT

 Một thuộc tính hay một phương thức khi được khai báo trong một lớp ta có thể khai báo trong 3 phạm vi khác nhau: private ,

public hoặc protected

 Về mặt nguyên tắc cho tới thời điểm này thì một thuộc tính hay một phương thức khi được khai báo trong phạm vi private hay

nhau Nghĩa là, thuộc tính và phương thức được khai báo trong hai phạm vi này chỉ được phép truy xuất bên trong lớp mà thôi và không được quyền truy xuất từ bên ngoài lớp.

Trang 24

4.3 PHẠM VI TRUY XUẤT

 Ví dụ: Hãy cho biết trong đoạn

chương trình sau câu lệnh nào đúng,câu lệnh nào sai

Trang 25

Chương 09 - 25

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

Trang 27

Chương 09 - 27

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

 Lớp đối tượng B được gọi là lớp

dẫn xuất từ lớp đối tượng A.

A B

Trang 29

Chương 09 - 29

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

4.4 TỪ KHÓA DẪN XUẤT

 Ví dụ 01: Khai báo lớp tam

giác và lớp tam giác cân

Trang 31

Chương 09 - 31

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

5 QUI TẮC KẾ THỪA

TRONG C++

 Bảng qui tắc kế thừa trong C++

 Ghi chú: Từ khoá dẫn xuất có ba loại

là private, protected, public Các sinhviên tự tìm hiểu thêm từ khoá dẫn xuấtprotected trong tài liệu

Từ khóa dẫn xuấtPhạm vi lớp

cơ sở

Private Public

PrivateProtected

Public

Trang 32

5 QUI TẮC KẾ THỪA

TRONG C++

 Bảng qui tắc kế thừa trong C++

 Ghi chú: Từ khoá dẫn xuất có ba loại

là private, protected, public Các sinhviên tự tìm hiểu thêm từ khoá dẫn xuấtprotected trong tài liệu

Từ khóa dẫn xuất

Phạm vi lớp

cơ sở

Private Public

PrivateProtected

Public

Trang 33

Chương 09 - 33

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

5 QUI TẮC KẾ THỪA

TRONG C++

 Bảng qui tắc kế thừa trong C++

 Ghi chú: Từ khoá dẫn xuất có ba loại

là private, protected, public Các sinhviên tự tìm hiểu thêm từ khoá dẫn xuấtprotected trong tài liệu

Từ khóa dẫn xuất

Phạm vi lớp

cơ sở

Private Public

Private

Trang 34

5 QUI TẮC KẾ THỪA

TRONG C++

 Bảng qui tắc kế thừa trong C++

 Ghi chú: Từ khoá dẫn xuất có ba loại

là private, protected, public Các sinhviên tự tìm hiểu thêm từ khoá dẫn xuấtprotected trong tài liệu

Từ khóa dẫn xuất

Phạm vi lớp

cơ sở

Private Public

PrivateProtected

Trang 35

Chương 09 - 35

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

5 QUI TẮC KẾ THỪA

TRONG C++

 Bảng qui tắc kế thừa trong C++

 Ghi chú: Từ khoá dẫn xuất có ba loại

là private, protected, public Các sinhviên tự tìm hiểu thêm từ khoá dẫn xuấtprotected trong tài liệu

Từ khóa dẫn xuất

Phạm vi lớp

cơ sở

Private Public

PrivateProtected

Public

Trang 36

5 QUI TẮC KẾ THỪA

TRONG C++

 Bảng qui tắc kế thừa trong C++

 Ghi chú: Từ khoá dẫn xuất có ba loại

là private, protected, public Các sinhviên tự tìm hiểu thêm từ khoá dẫn xuấtprotected trong tài liệu

Từ khóa dẫn xuấtPhạm vi lớp

cơ sở

PrivateProtected

Public

Trang 37

Chương 09 - 37

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

5 QUI TẮC KẾ THỪA

TRONG C++

 Bảng qui tắc kế thừa trong C++

 Ghi chú: Từ khoá dẫn xuất có ba loại

là private, protected, public Các sinhviên tự tìm hiểu thêm từ khoá dẫn xuấtprotected trong tài liệu

Từ khóa dẫn xuấtPhạm vi lớp

cơ sở

Private

PrivateProtected

Public

Trang 38

5 QUI TẮC KẾ THỪA

TRONG C++

 Bảng qui tắc kế thừa trong C++

 Ghi chú: Từ khoá dẫn xuất có ba loại

là private, protected, public Các sinhviên tự tìm hiểu thêm từ khoá dẫn xuấtprotected trong tài liệu

Từ khóa dẫn xuấtPhạm vi lớp

cơ sở

Private Public

PrivateProtected

Public

Trang 39

Chương 09 - 39

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

5 QUI TẮC KẾ THỪA

TRONG C++

 Bảng qui tắc kế thừa trong C++

 Ghi chú: Từ khoá dẫn xuất có ba loại

là private, protected, public Các sinhviên tự tìm hiểu thêm từ khoá dẫn xuấtprotected trong tài liệu

Từ khóa dẫn xuấtPhạm vi lớp

Trang 40

5 QUI TẮC KẾ THỪA

TRONG C++

 Bảng qui tắc kế thừa trong C++

 Ghi chú: Từ khoá dẫn xuất có ba loại

là private, protected, public Các sinhviên tự tìm hiểu thêm từ khoá dẫn xuấtprotected trong tài liệu

Từ khóa dẫn xuấtPhạm vi lớp

Trang 41

Chương 09 - 41

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

5 QUI TẮC KẾ THỪA

TRONG C++

 Bảng qui tắc kế thừa trong C++

 Ghi chú: Từ khoá dẫn xuất có ba loại

là private, protected, public Các sinhviên tự tìm hiểu thêm từ khoá dẫn xuấtprotected trong tài liệu

Từ khóa dẫn xuấtPhạm vi lớp

Trang 42

5 QUI TẮC KẾ THỪA

TRONG C++

 Bảng qui tắc kế thừa trong C++

 Ghi chú: Từ khoá dẫn xuất có ba loại

là private, protected, public Các sinhviên tự tìm hiểu thêm từ khoá dẫn xuấtprotected trong tài liệu

Từ khóa dẫn xuấtPhạm vi lớp

Trang 43

Chương 09 - 43

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

5 QUI TẮC KẾ THỪA

TRONG C++

 Bảng qui tắc kế thừa trong C++

 Ghi chú: Từ khoá dẫn xuất có ba loại

là private, protected, public Các sinhviên tự tìm hiểu thêm từ khoá dẫn xuấtprotected trong tài liệu

Từ khóa dẫn xuấtPhạm vi lớp

cơ sở

Private Public

Protected private protected

Trang 44

của lớp dẫn xuất.

 Các thuộc tính và phương thức đượckhai báo trong phạm vi protected củalớp cơ sở nếu được dẫn xuất bằng từkhóa public thì các thuộc tính vàphương thức đó sẽ được hiểu ở lớp

Trang 45

Chương 09 - 45

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

Trang 46

5 QUI TẮC KẾ THỪA

TRONG C++

 Bảng qui tắc kế thừa trong C++

Từ khóa dẫn xuất Phạm vi lớp

Trang 47

Chương 09 - 47

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

5 QUI TẮC KẾ THỪA

TRONG C++

 Bảng qui tắc kế thừa trong C++

(1) (2) (3) (4) (5) (6)

Trang 48

5 QUI TẮC KẾ THỪA

TRONG C++

 Bảng qui tắc kế thừa trong C++

Trang 49

Chương 09 - 49

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

5 QUI TẮC KẾ THỪA

TRONG C++

 Bảng qui tắc kế thừa trong C++

Trang 50

6 CÂY KẾ THỪA CHI TIẾT

 Qui tắc vẽ cây kế thừa chi tiết:

 Các thuộc tính và phương thứcthuộc phạm vi private được vẽ với

màu xanh bên trái

 Các thuộc tính và phương thứcthuộc phạm vi protected được vẽvới màu xanh bên phải

 Các thuộc tính và phương thứcthuộc phạm vi public được vẽ với

màu đỏ bên phải

 Các thuộc tính và phương thức cóđược do kế thừa được vẽ bằng nétđứt không liên tục

 Các thuộc tính và phương thức củachính bản thân lớp được vẽ bằngnét liền liên tục

Trang 51

Chương 09 - 51

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

6 CÂY KẾ THỪA CHI TIẾT

c h()

t aa() b g()

z xy() c

h() public

Trang 52

6 CÂY KẾ THỪA CHI TIẾT

A

B

yg()

C

pab()

kmn()

pab()g()

y

Trang 53

Chương 09 - 53

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

7 TOÁN TỬ GÁN TRONG KẾ THỪA

 Ví dụ dẫn nhập 01: Hãy cho biết trongchương trình dưới đây câu lệnh nàođúng câu lệnh nào sai:

Trang 54

7 TOÁN TỬ GÁN TRONG KẾ THỪA

Trang 55

Chương 09 - 55

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

7 TOÁN TỬ GÁN TRONG KẾ THỪA

 Toán tử gán trong kế thừa được thực hiện theo nguyên tắc:

trường hợp đặt biệt có thể được gán cho trường hợp tổng quát, và trường hợp tổng

trường hợp đặt biệt được

 Qui tắc trên áp dụng cho tất cả các ngôn ngữ hỗ trợ lập trình hướng đối tượng như C++, Java, VB.NET, C#, Python,

Trang 56

7 TOÁN TỬ GÁN TRONG KẾ THỪA

 Áp dụng qui tắc trên cho ngôn ngữ lập trình hướng đối tượng C++ ta có thể nói như sau: một đối tượng thuộc lớp dẫn xuất

ngược lại là sai, nghĩa là một đối tượng thuộc lớp cơ sở không được quyền gán cho một đối tượng thuộc lớp dẫn xuất

Trang 57

Chương 09 - 57

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

7 TOÁN TỬ GÁN TRONG KẾ THỪA

 Ví dụ dẫn nhập 01: Hãy cho biết trongchương trình dưới đây câu lệnh nàođúng câu lệnh nào sai:

Trang 58

7 TOÁN TỬ GÁN TRONG KẾ THỪA

 Mở rộng qui tắc trên cho con trỏ đối tượng ta có thể nói như sau:

một con trỏ đối tượng thuộc lớp cơ sở có thể giữ địa chỉ của một đối tượng thuộc lớp dẫn xuất Ngược lai, một con trỏ đối tượng thuộc lớp dẫn xuất không thể giữ địa chỉ của một đối tượng thuộc lớp cơ sở.

Trang 59

Chương 09 - 59

GV Nguyễn Sơn Hoàng Quốc

ThS Nguyễn Tấn Trần Minh Khang

7 TOÁN TỬ GÁN TRONG KẾ THỪA

 Hãy cho biết đoạn chương trình dướiđây câu lệnh nào đúng, câu lệnh nàosai:

Ngày đăng: 09/07/2015, 13:29

HÌNH ẢNH LIÊN QUAN

3. SƠ ĐỒ LỚP - Chương 9- Kế thừa
3. SƠ ĐỒ LỚP (Trang 18)

TỪ KHÓA LIÊN QUAN