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

Chương 12- Kế thừa

59 629 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 324,63 KB

Nội dung

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,

Trang 1

Chương 12 - 1

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

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

Chương 12

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 12 - 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 khi

mộ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ệ duy

nhấ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ượng

lớp B quan hệ duy nhất với một đốitượng thuộc lớp A

Trang 5

Chương 12 - 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

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 khi

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 quan hệ duy

nhấ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 12 - 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 12 - 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 12 - 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ợp

tổng quát của lớp đối tượng này

− Hình vẽ

A B

Trang 13

Chương 12 - 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

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 12 - 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 12 - 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ác

+ 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 12 - 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 12 - 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 12 - 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

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 12 - 25

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

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

Trang 27

Chương 12 - 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 12 - 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 12 - 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

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

Public

Trang 33

Chương 12 - 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

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

Trang 35

Chương 12 - 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

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

Public

Trang 37

Chương 12 - 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

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

Public

Trang 39

Chương 12 - 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

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

Trang 41

Chương 12 - 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

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

Trang 43

Chương 12 - 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

Protected private protected

Trang 44

dẫn xuất như là thành phần private

ẫn xuất như là thành phần

Trang 45

Chương 12 - 45

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

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

dẫn xuất như là thành phần private

dẫn xuất như là thành phần public của

lớp dẫn xuất

Trang 47

Chương 12 - 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 12 - 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 12 - 51

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

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

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 12 - 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 55

Chương 12 - 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 12 - 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:

l ớp cơ sở có thể giữ địa chỉ

d ẫn xuất Ngược lai, một con

xu ất không thể giữ địa chỉ của

s ở.

Trang 59

Chương 12 - 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

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w