1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Kế thừa và đa hình pdf

25 285 1

Đ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 25
Dung lượng 106,01 KB

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

Nội dung

Tổng quát hóa và cá thể hóa tính, phương thức chung được tổng quát thành cáclớp cha Cá thể hóa: các lớp con kế thừa các phương thức, thuộc tính của lớp cha và bổ sung thêm thuộc tính,

Trang 1

CHƯƠNG 4

Trang 4

06/09/11 16:02 4

4.1 Tổng quát hóa và cá thể hóa

tính, phương thức chung được tổng quát thành cáclớp cha

 Cá thể hóa: các lớp con kế thừa các phương thức,

thuộc tính của lớp cha và bổ sung thêm thuộc tính, phương thức của riêng nó

Người

Trang 5

4.2 Kế thừa (inheritance)

 Kế thừa (inheritance) là kỹ thuật thể hiện quan hệ

cá thể hóa (specialization)

 Kế thừa có hai loại: đơn kế thừa và đa kế thừa.

lớp cơ sở

• Đa kế thừa là lớp dẫn xuất được kế thừa từ

nhiều lớp cơ sở

Trang 7

Ví dụ kế thừa

class Ngươi {

} class SinhVien: Ngươi {

} class GiaoVien:Ngươi {

Trang 8

06/09/11 16:02 8

Ưu điểm của kỹ thuật kế thừa

VD: lớp Sinh viên có thể sử dụng một số phương

thức, thuộc tính của lớp Người

VD: lớp Người có phương thức Hienthi(), lớp Sinhviên và Giáo viên cũng có phương thức Hienthi()

Trang 9

Gọi Constructor của lớp Cơ sở (1)

lập (Constructor) của lớp cơ sở nên một lớp dẫn

xuất phải thực thi phương thức tạo lập riêng của

mình

thì phương thức tạo lập của lớp dẫn xuất được địnhnghĩa như cách thông thường

Trang 10

06/09/11 16:02 10

Gọi Constructor của lớp Cơ sở (2)

thì lớp dẫn xuất phải định nghĩa phương thức tạo

lập có tham số theo cú pháp sau

TênLớpCon(ThamSốLớpCon):base(ThamSốLớpCha){

// Khởi tạo giá trị cho các thành phần của lớpdẫn xuất

}

Trang 11

Truy nhập thành phần của lớp cơ sở

của lớp cơ sở từ lớp dẫn xuất

base.X

Trang 12

06/09/11 16:02 12

Định nghĩa lại phương thức của lớp dẫn xuất

tên với lớp cơ sở thì trình biên dịch sẽ có cảnh báo:

“keyword new is required on ‘LớpDẫnXuất.X’ because it

hides inherited member on ‘LớpCơSở.X ‘”.

báo thành phần đó

thừa đó đối từ base class

Trang 13

Ví dụ

Trang 14

06/09/11 16:02 14

Ngăn cấm kế thừa

sealed Điều này có nghĩa là bạn không được quyềnthừa kế lớp đó, nếu là phương thức tức là bạn

không được phép override nó

Trang 15

 sealed class FinalClass

{

// etc}

class DerivedClass : FinalClass //Điều này là sai, trình biên dịch sẽ báo lỗi do kế thừa từ một lớp cókhai báo sealed

{

// etc

Trang 17

4.3 Đa hình

trong lớp con có cùng tên, kiểu với hàm trong lớp

cha, khi ấy hàm trong lớp con sẽ overrides (làm ẩn) hàm trong lớp cha Đó được gọi là overriding

Trang 18

06/09/11 16:02 18

Tạo phương thức hỗ trợ đa hình

public virtual void Nhap( )

{

//Code statements }

public override void Nhap( )

{

//Code statements }

Người

Trang 19

4.4.Lớp trừu tượng

• Yêu cầu tất cả các lớp con, kế thừa từ nó phải

cài đặt một hoặc một vài phương thức nào đó

• Lớp trừu tượng là lớp tồn tại ít nhất một phương

thức trừu tượng

câu lệnh nào

Trang 20

06/09/11 16:02 20

Khai báo lớp trừu tượng

abstract public class Control

{

…abstract public void tenphuongthuc( );

}

Trang 21

Kế thừa lớp trừu tượng

public class Lopdanxuat : Lopcoso

{

…// implement the abstract method

public override void tenphuongthuc( ){

…}

Trang 22

06/09/11 16:02 22

Boxing và Unboxing dữ liệu

 Mọi kiểu dữ liệu, dựng sẵn hay do người dùng định

nghĩa, đều được lấy từ một lớp cơ bản là Object

trong namespace System

 Boxing là quá trình chuyển dữ liệu từ kiểu tham trị

sang kiểu tham chiếu.Quá trình boxing một biến

kiểu tham trị sẽ khởi tạo một đối tượng trong vùngnhớ Heap và copy giá trị của biến tham trị vào đốitượng mới này ! Và quá trình boxing được thực hiệnngầm định

Trang 23

Boxing và Unboxing dữ liệu

 Unboxing là quá trình ngược lại với boxing, tức là

đưa từ kiểu tham chiếu ra kiểu tham trị Quá trìnhnày sẽ được thực hiện một cách tường minh Gồm

có 2 bước :

• Bước 1 : Kiểm tra chắc chắn rằng đối tượng đã

được boxing đúng kiểu giá trị đưa ra

• Bước 2 : Copy giá trị sang biến dữ liệu kiểu

tham trị

Trang 24

int myInt2 = (int) obj;

}

}

Trang 25

Bài tập chương 4

Ngày đăng: 09/08/2014, 20:21

TỪ KHÓA LIÊN QUAN

w