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

Bài giảng c và môi trường donet bài 6

16 198 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 16
Dung lượng 196 KB

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

Nội dung

Khái niệm kế thừa• Kế thừa là một đặc điểm quan trọng của ngôn ngữ lập trình hướng đối tượng • Kế thừa là khả năng cho phép sử dụng lại những đọan code đã có sẵn do đó sẽ tiết kiệm thời

Trang 1

Kế thừa và Đa hình

Trang 2

• Garbage Collector

• Con trỏ this

• Phương thức(Method)

• Chồng phương thức(Method Overloading)

• Chông toán tử(Operator Overloading)

• Access modifier (phạm vi truy xuất)

• Từ khóa ref và out

Trang 3

Subject name / Session# / 3 of Totalpage

• Từ khóa protected

• Sealing class

• Từ khóa base

• Từ khóa new

• Method Overriding

• Polymorphism(đa hình)

Trang 4

Khái niệm kế thừa

• Kế thừa là một đặc điểm quan trọng của ngôn ngữ lập trình hướng đối tượng

• Kế thừa là khả năng cho phép sử dụng lại những đọan code đã có

sẵn do đó sẽ tiết kiệm thời gian lập trình

• Lớp A kế thừa từ lớp B thì lớp A gọi là derived class(child

class/subclass), lớp B gọi là base class(parent class/super class)

• Có 2 loại kế thừa:

 Đơn kế thừa Ví dụ kế thừa lớp

 Đa kế thừa Ví dụ kế thừa Interface

Trang 5

Cài đặt kế thừa

• <classA>:<classB>

• Trong đó là classA kế thừa từ classB

• Trong lớp classA có thể truy xuất đến các thành phần trong lớp

classB nếu thành phần đó có phạm vi truy xuất là proteced hoặc public

• Các construtor không được kế thừa

Ví dụ DEMO kế thừa

Trang 6

Từ khóa proteced

• Để qui định phạm vi truy xuất các thành phần bên trong một lớp

• Một thành phần(thuộc tính, phương thức) được

Trang 7

Sealing class

• Một lớp có từ khóa sealed có nghĩa là lớp đó không cho phép các lớp khác kế thừa

… sealed class classOne

{ //Class Implementation }

Trang 8

Từ khóa base

• Dùng để truy cập đến các thành phần(thuộc tính, phương thức…) bên trong lớp cơ sở từ lớp dẫn xuất(lớp kế thừa)

• Dùng để gọi constructor của lớp cơ sở khi tạo đối tượng của lớp

dẫn xuất

• Không được sử dụng từ khóa base trong phương thức tĩnh.

Ví dụ DEMO từ khóa base

Trang 9

Từ khóa new

• Dùng để che dấu đi các thuộc tính và phương thức của lớp cơ sở

• Do đó trong lớp dẫn xuất, muốn gọi các thuộc tính hoặc phương thức ở lớp cơ sở, sử dụng từ khóa base

Ví dụ minh họa từ khóa new

Trang 10

Method overriding

• Là khả năng cho phép lớp dẫn xuất định nghĩa lại(override/redefine) các phương thức của lớp cơ sở

• Phương thức ở lớp cơ sở và lớp dẫn xuất có cùng một

prototype(signature) nhưng thưng thực hiện các công việc khác

nhau

• Để override (ghi đè) một phương thức ơ lớp cơ sở:

 Đặt từ khóa virtual trước phương thức trong lớp cơ sở

 Đặt từ khóa override trước phương thức muốn override trong lớp dẫn xuất

Trang 11

Overriding method

• Cú pháp khai báo

Ví dụ DEMO method overriding

[access modifier] virtual [return-type] name( [parameters-list] )

{

//virtual method implementation }

[access modifier] override [return-type] name( [parameters-list] )

{

//virtual method implementation }

Trang 12

Polymorphism(đa hình)

• Nói ở ngữ cảnh chung chung, đa hình là khả năng biến hóa thành nhiều hình dạng khác nhau

• Trong lập trình hướng đối tượng: thế nào là đa hình?

 Ví dụ chúng ta có một lớp shape(hình vẽ), trong lớp shape có phương thức Area() Sau đó các lớp Square(hình vuông), Rectangle(hình CN), Circle(đường tròn) kế thừa từ lớp Shape

 Trong lớp Square override phương thức Area() trong lớp shape

và nó thực hiện công việc tính diện tích của hình vuông

 Trong lớp Rectangle cũng override phương thức Area() của lớp shape và nó thực hiện công việc tính diện tích của hình chữ nhật

Trang 13

hiện công việc tính diện tích của hình tròn.

 Bây giờ khởi tạo đối tượng của 3 lớp

Square objSquare = new Square();

Rectangle objRectangle = new Rectangle();

Circle objCircle = new Circle();

Shape objShape;

objShapre = objSquare();

objShape.Area();

objShapre = objRectangle();

objShape.Area();

objShapre = objRectangle();

objShape.Area();

Trang 14

Kết luận:

• Đa hình là khả năng một biến tham chiếu thay hành vi tùy theo đối tượng mà nó đang tham chiếu đến

• Cho phép nhiều đối tượng của các subclass được coi như là các đối

tượng của super class và tự động lựa chọn đúng phương thức dựa trên đối tượng mà phương thức đó được triệu gọi

• Ưu điểm:

 Dễ mở rộng

 Đơn giản hóa code(dễ viết và dễ hiểu)

Trang 15

 Method overriding

 Phương thức của subclass nghi đè phương thức của lớp

cơ sở

 Viết chồng (Method overriding) phương thức trừu tượng:

 Phương thức của subclass cài đặt phương thức trừu tượng của lớp trừu tượng

 Viết chồng (Method overriding) các phương thức của interface

 Các phương thức của một lớp cài đặt các phương thức trong một interface

Ví dụ DEMO tính đa hình

Trang 16

Tổng kết

• Khái niệm kế thừa và cách cài đặt

• Từ khóa protected

• Từ khóa base

• Từ khóa new

• Từ khóa sealed

• Method overriding

• Đa hình

Ngày đăng: 04/12/2015, 14:32

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

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

TÀI LIỆU LIÊN QUAN