5 kethua

4 132 0
5 kethua

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

Thông tin tài liệu

HỌC VIỆN KỸ THẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN ĐỀ CƯƠNG BÀI GIẢNG HỌC PHẦN: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bộ môn: Công nghệ phần mềm Giáo viên: 1) Phạm Thị Bích Vân Bài V: Cơ chế kế thừa Thời lượng: tiết (GV giảng: 3; tập: 3; thực hành: 3) Mục đích, yêu cầu: Giới thiệu sinh viên khái niệm ý nghĩa kế thừa, đơn kế thừa, đa kế thừa Cách xây dựng lớp kế thừa Nội dung: a) Nội dung chi tiết: • Giới thiệu − • Kế thừa khả cho phép xây dựng lớp mới: + Được thừa hưởng thành phần từ hay nhiều lớp có (lớp sở) + Trong lớp ta bổ sung thêm thành phần định nghĩa lại thành phần Ví dụ + Xây dựng lớp PS1 {ts, ms, nhập, in, tối giản} + Lớp PS2 {ts, ms, nhập, in, tối giản, cộng, trừ, nhân chia phân số} Kế thừa đơn • Chỉ có lớp sở Các lớp sở lớp dẫn xuất − Sự kế thừa hình thành cấu trúc phân cấp giống (còn gọi phả hệ) Một lớp sở tồn − phân cấp quan hệ với lớp dẫn xuất Một lớp lớp sở mà cung cấp thuộc tính hành vi cho lớp khác, − lớp trở thành lớp dẫn xuất mà kế thừa thuộc tính hành vi Lớp kế thừa gọi lớp sở (lớp cha) − Lớp kế thừa gọi lớp dẫn xuất (lớp con) − Ví dụ: Phân cấp lớp Shape • Các thành viên protected − Các thành viên public lớp sở truy cập tất hàm chương trình − Các thành viên private lớp sở truy cập hàm thành viên hàm friend lớp sở Truy cập protected phục vụ mức trung gian bảo vệ truy cập public truy − cập private Các thành viên protected lớp sở truy cập hàm thành viên hàm friend lớp sở hàm thành viên hàm friend lớp dẫn xuất Các thành viên lớp dẫn xuất kế thừa public truy xuất tới thành viên public protected cách sử dụng tên thành viên Bộ môn Công nghệ phần mềm • Ép kiểu trỏ lớp sở tới trỏ lớp dẫn xuất • Một đối tượng lớp dẫn xuất kế thừa public ép đối tượng thuộc lớp sở, ngược lại không Tuy nhiên sử dụng ép kiểu để chuyển đổi trỏ lớp sở thành trỏ lớp dẫn xuất Định nghĩa lại thành viên lớp sở lớp dẫn xuất • Một lớp dẫn xuất định nghĩa lại hàm thành viên lớp sở Điều gọi overriding Khi hàm đề cập tên lớp dẫn xuất, phiên lớp dẫn xuất chọn cách tự động Toán tử định phạm vi sử dụng để truy cập phiên lớp sở từ lớp dẫn xuất Các lớp sở public, protected, private − Khi dẫn xuất lớp từ lớp sở, lớp sở kế thừa public, protected private class : {……………… }; Trong type_of_inheritance public, protected private Mặc định private − Khi dẫn xuất lớp từ lớp sở public, thành viên public lớp sở trở thành − thành viên public lớp dẫn xuất, thành viên protected lớp sở trở thành thành viên protected lớp dẫn xuất Các thành viên private lớp sở không truy cập trực tiếp từ lớp dẫn xuất Khi dẫn xuất lớp từ lớp sở protected, thành viên public protected lớp • sở trở thành thành viên protected lớp dẫn xuất Khi dẫn xuất lớp từ lớp sở private, thành viên public protected lớp sở trở thành thành viên private lớp dẫn xuất Các constructor destructor lớp dẫn xuất − Khi đối tượng lớp dẫn xuất khởi động, constructor lớp sở phải gọi để khởi − tạo thành viên lớp sở lớp dẫn xuất Nếu constructor lớp dẫn bị bỏ qua, constructor mặc định lớp dẫn gọi constructor lớp sở Các destructor gọi theo thứ tự ngược lại thứ tự gọi constructor, destructor lớp • dẫn xuất gọi trước destructor lớp sở Chuyển đổi ngầm định đối tượng lớp dẫn xuất sang đối tượng lớp sở • Một trỏ trỏ tới đối tượng lớp dẫn xuất chuyển đổi ngầm định thành trỏ trỏ tới đối tượng lớp sở đối tượng lớp dẫn xuất đối tượng lớp sở Đa kế thừa − Một lớp dẫn xuất từ nhiều lớp sở, dẫn xuất gọi đa kế thừa Đa − kế thừa có nghĩa lớp dẫn xuất kế thừa thành viên lớp sở khác Khả mạnh khuyến khích dạng quan trọng việc sử dụng lại phần mềm, sinh vấn đề nhập nhằng Cú pháp lớp kế thừa nhiều lớp sở: class : , , … { ……………… }; Bộ môn Công nghệ phần mềm • Các lớp sở ảo − Đôi lập trình lớp A sở lớp B,C Lớp D lại kế thừa từ B,C Khi từ − lớp D ta gọi đến thành phần lớp A chương trình có nhập nhằng Giải pháp: Khai báo lớp A lớp sở ảo với từ khóa virtual Khi Hai lớp sở A bất trở thành lớp sở A cho lớp dẫn xuất từ B C Điều có nghĩa D có sở lớp A, tránh nhập nhằng b) Nội dung thảo luận: Sự khác kiểu kế thừa, hàm khởi tạo kế thừa c) Nội dung tự học: Xây dựng lớp kế thừa, tạo hàm tạo lớp dẫn xuất d) Bài tập (bắt buộc, mở rộng): Bài 1: Cài đặt lớp PS1 gồm có: Dữ liệu: tử số, mẫu số Phương thức: nhập ps(mẫu khác 0), in ps, tối giản, cộng ps Chương trình chính: nhập ps ab, in c=a+b Cài đặt lớp PS2 kế thừa PS1 bổ sung: Dữ liệu: dấu phân số Phương thức: phép so sánh: ==, != Chương trình chính: nhập ps, thông báo kết so sánh Bài 2: Cài đặt lớp SP1 gồm có: Dữ liệu: phần thực, phần ảo Phương thức: nhập,in Chương trình chính: nhập sp ab, in a, b Cài đặt lớp SP2 kế thừa SP1 bổ sung: Dữ liệu: Phương thức: toán tử +, -, *, /, phép so sánh: ==, !=, >, >=,

Ngày đăng: 18/10/2017, 04:42

Mục lục

  • Bài V: Cơ chế kế thừa

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan