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

Bài giảng Cơ sở lập trình máy tính: Chương 4 - ThS. Nguyễn Thị Khiêm Hòa

23 8 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 23
Dung lượng 1,17 MB

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

Nội dung

Bài giảng Cơ sở lập trình máy tính Chương 4 Kế thừa – Đa hình nhằm trình bày về thiết kế đối tượng, kế thừa và đa hình, lợi thế của lập trình hướng đối tượng, định nghĩa và ví dụ về kế thừa, mối quan hệ tổng quát hóa và chuyên biệt hóa.

Trang 1

Kế thừa – Đa hình Chương 4:

Giảng viên: Ths Nguyễn Thị Khiêm Hòa

Trang 2

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

Trang 3

Lợi thế của lập trình hướng đối tượng

Lấy đối tượng làm trung tâm

Không lệ thuộc thứ tự thuật toán

Linh hoạt Tái sử dụng

Che giấu dữ liệu

Trang 4

Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM

Tại sao phải kế thừa

 Dung lượng lưu trữ lớn

 Thay đổi phần chung khó khăn

Trang 5

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ở

Trang 6

Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM

Trang 7

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(){}

}

Trang 8

Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM

Ví dụ kế thừa

class GVCN : GiaoVien

{ private string LopCN;

public GVCN(string HoTen, double luong,int nn, string lop): base(HoTen, luong, nn)

Trang 9

Mối quan hệ tổng quát hóa và chuyên biệt hóa

 Kế thừa là mối quan hệ đặc biệt

 Các lớp dẫn xuất kế thừa các thuộc tính và phương

thức của lớp cơ sở và cho phép tái sử dụng các

đoạn code

 Các lớp dẫn xuất là thành phần chuyên biệt hóa

Trang 10

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)

Trang 11

Bài tập

Xây dựng lớp tài khoản thẻ, kế thừa lớp tài khoản

Thực hiện

Trang 12

Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM

Định nghĩa lại phương thức

 Kế thừa một phần:

 Không kế thừa “máy móc” tất cả

 Lớp dẫn xuất có thể thay đổi những gì đã kế thừa

Định nghĩa lại phương thức đã kế thừa

Trang 13

Đa hình

 Đa hình

 Xây dựng phương thức ảo

 Gọi lớp cơ sở từ lớp dẫn xuất

 Phương thức trừu tượng (abstract)

Trang 14

Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM

Eat ()

Eat ()

Eat ()

Trang 15

Xây dựng phương thức ảo

 Phương thức ảo (Virtual) là việc định nghĩa lại

(Override) một phương thức của lớp cơ sở trong

Trang 16

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

public class Animal

{ public virtual string Eat()

Trang 17

Sử dụng thành phần của lớp cơ sở trong lớp dẫn xuất

Trang 18

Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM

Lớp và phương thức trừu tượng (Abstract)

 Lớp trừu tượng là một lớp cơ sở khái quát

 Chứa các phương thức trừu tượng được thực hiện trong lớp dẫn xuất

 Có thể chứa các thành phần không trừu tượng (non-abstract)

 Phương thức trừu tượng không thực hiện trong lớp cơ sở

Trang 19

Lớp và phương thức trừu tượng (Abstract)

public abstract class Animal

Trang 20

Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM

Bài tập

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

Thực hiện

1 hour

Trang 21

Bài tập

 Xây dựng các lớp đối tượng liên quan tài khoản ngân hàng (Bank Account)

Thực hiện

Trang 22

Khoa Công nghệ Thông tin – Trường Đại học Ngân hàng TP.HCM

Xây dựng Sealed Class

 Sealed class không cho phép kế thừa

public sealed class MyClass {

// class members

}

Trang 23

Q & A

Ngày đăng: 10/05/2021, 13:47

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm