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

Lập trình hướng đối tượng tren C/C++ - OOP 09 interface and polymorphism

24 441 2

Đ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

Tiêu đề Interface và Đa hình
Tác giả Nguyễn Minh Huy
Chuyên ngành Phương pháp Lập trình Hướng Đối Tượng
Thể loại Bài giảng
Định dạng
Số trang 24
Dung lượng 507,43 KB

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

Nội dung

Lập trình hướng đối tượng tren C/C++ - OOP 09 interface and polymorphism

Trang 2

Nội dung dung

 Khái Khái niệm niệm interface interface.

 Hàm Hàm ảo ảo và và liên liên kết kết động động

 Phương Phương thức thức hủy hủy ảo ảo

Trang 3

Nội dung dung

 Khái Khái niệm niệm interface interface.

 Hàm Hàm ảo ảo và và liên liên kết kết động động

 Phương Phương thức thức hủy hủy ảo ảo

Trang 4

Khái niệm niệm interface interface

 Giao Giao tiếp tiếp giữa giữa đối đối tượng tượng và và bên bên ngoài ngoài::

 Quy Quy tắc tắc hộp hộp đen đen::

 Thuộc Thuộc tính tính: : private, private, hạn hạn chế chế truy truy xuất xuất

 Phương Phương thức thức: : public, public, cung cung cấp cấp tính tính năng năng

Trang 5

Khái niệm niệm interface interface

 Đặc Đặc điểm điểm Interface: Interface:

 Là Là ““phần phần vỏ vỏ” ” của của lớp lớp

Lớp Lớp = = Interface Interface + + Khai Khai báo báo private + private + Cài Cài đặt đặt

 Quy Quy định định cách cách thức thức giao giao tiếp tiếp

 Không Không chứa chứa cài cài đặt đặt

void void xuLyxuLy((PhanSo PhanSo p p))

Nhận interface PhanSoclass

class PhanSoPhanSo

public:

PhanSo PhanSo((int int tu tu, , int int mau mau); );

PhanSo

PhanSo rutGon rutGon(); ();

PhanSo PhanSo nghichDao nghichDao(); ();

};

void void xuLyxuLy((PhanSo PhanSo p p))

{{ // // XửXử lýlý trêntrên papa}}

void main(){{

PhanSoPhanSo p1(1, 2);p1(1, 2);

PhanSoPhanSo p2(1, 3);p2(1, 3);

xuLy

xuLy(p1); (p1);

xuLy xuLy(p2); (p2);

Trang 6

Khái niệm niệm interface interface

 Interface Interface trong trong kế kế thừa thừa::

 Lớp Lớp kế kế thừa thừa thừa thừa hưởng hưởng::

 Thuộc Thuộc tính tính từ từ lớp lớp cơ cơ sở sở

 Phương Phương thức thức từ từ lớp lớp cơ cơ sở sở



 Thừa Thừa hưởng hưởng interface interface của của lớp lớp cơ cơ sở sở

Lớp Lớp kế kế thừa thừa có có interface interface của của lớp lớp cơ cơ sở sở

 Lớp Lớp kế kế thừa thừa có có interface interface của của lớp lớp cơ cơ sở sở

 Hàm Hàm nhận nhận đối đối tượng tượng lớp lớp cơ cơ sở sở



 Cũng Cũng nhận nhận đối đối tượng tượng lớp lớp kế kế thừa thừa

 Con Con trỏ trỏ kiểu kiểu lớp lớp cơ cơ sở sở



 Có Có thể thể trỏ trỏ đến đến đối đối tượng tượng lớp lớp kế kế thừa thừa

Trang 7

Khái niệm niệm interface interface

 Interface Interface và và trong trong kế kế thừa thừa::

class

class Cat Cat: public : public Animal Animal

void void xuLyxuLy((Animal p Animal p))

Trang 8

Nội dung dung

 Khái Khái niệm niệm interface interface.

 Hàm Hàm ảo ảo và và liên liên kết kết động động

 Phương Phương thức thức hủy hủy ảo ảo

Trang 9

Hàm ảo ảo và và liên liên kết kết động động

 Vấn Vấn đề đề liên liên kết kết tĩnh tĩnh trong trong C++: C++:

class

class Cat Cat: public : public Animal Animal

void void xuLyxuLy((Animal p Animal p))

Cat c;

Liên kếtcài đặtAnimalclass

class Cat Cat: public : public Animal Animal

Cat c;

Dog d;

xuLy xuLy(c); (c);

xuLy xuLy(d); (d);

Animal *p;

p = &c;

p p >talk(); >talk();

p = &d;

p p >talk(); >talk();

Liên kếtcài đặtAnimal

Trang 10

Hàm ảo ảo và và liên liên kết kết động động

 Khái Khái niệm niệm hàm hàm ảo ảo::

 Phương Phương thức thức bình bình thường thường::

 Lời Lời gọi gọi hàm hàm gắn gắn với với cài cài đặt đặt hàm hàm lúc lúc dịch dịch   Liên Liên kết kết tĩnh tĩnh

 Hàm Hàm ảo ảo::

 Phương Phương thức thức đặc đặc biệt biệt

Lời Lời gọi gọi hàm hàm chỉ chỉ gắn gắn với với interface interface   Liên Liên kết kết động động

 Lời Lời gọi gọi hàm hàm chỉ chỉ gắn gắn với với interface interface   Liên Liên kết kết động động

 Khai Khai báo báo: : virtual virtual < <Chữ Chữ ký ký hàm hàm>; >;

 Chỉ Chỉ dùng dùng được được với với con con trỏ trỏ đối đối tượng tượng

Trang 11

Hàm ảo ảo và và liên liên kết kết động động

 Vấn Vấn đề đề liên liên kết kết tĩnh tĩnh trong trong C++: C++:

class

class Cat Cat: public : public Animal Animal

void void xuLyxuLy((Animal *p Animal *p))

Cat c;

Liên kếtinterface Animal

Bỏ ngõcài đặtclass

class Cat Cat: public : public Animal Animal

Cat c;

Dog d;

xuLy xuLy(c); (c);

xuLy xuLy(d); (d);

Animal *p;

p = &c;

p p >talk(); >talk();

p = &d;

p p >talk(); >talk();

cài đặt

Liên kếtinterface Animal

Bỏ ngõcài đặt

Trang 12

Hàm ảo ảo và và liên liên kết kết động động

 Xây Xây dựng dựng interface interface trong trong C++: C++:

 C++ C++ giả giả lập lập interface interface bằng bằng abstract class abstract class.

 Đặc Đặc điểm điểm abstract class: abstract class:

 Khai Khai báo báo lớp lớp: : dùng dùng từ từ khóa khóa “abstract” “abstract”

 Khai Khai báo báo phương phương thức thức: : hàm hàm ảo ảo thêm thêm “ “dấu dấu =“ =“ ở ở cuối cuối

Không Không có có thuộc thuộc tính tính và và cài cài đặt đặt phương phương thức thức

 Không Không có có thuộc thuộc tính tính và và cài cài đặt đặt phương phương thức thức

Trang 13

Hàm ảo ảo và và liên liên kết kết động động

 Xây Xây dựng dựng interface interface trong trong C++: C++:

Cat c;

Dog d;

xuLy xuLy(c); (c);

xuLy xuLy(d); (d);

p >talk();>talk();

}}

Trang 14

Hàm ảo ảo và và liên liên kết kết động động

 Ý Ý nghĩa nghĩa của của liên liên kết kết động động::

 Giao Giao tiếp tiếp thông thông qua interface qua interface.

 Cài Cài đặt đặt thay thay đổi đổi động động tùy tùy nhu nhu cầu cầu người người dùng dùng

d.talkd.talk();();

}}

Trang 15

Nội dung dung

 Khái Khái niệm niệm interface interface.

 Hàm Hàm ảo ảo và và liên liên kết kết động động

 Phương Phương thức thức hủy hủy ảo ảo

Trang 16

GiaoVien *p1 = new *p1 = new GiaoVienGiaoVien;;delete p1;

GVCN *p2 = new GVCN;delete p2;

}}

Thứ tự gọi phương thức hủy??

Trang 17

Phương thức thức hủy hủy ảo ảo

 Dr Guru Dr Guru khuyên khuyên::

 Phương Phương thức thức hủy hủy của của lớp lớp phải phải luôn luôn là là hàm hàm ảo ảo

Trang 18

Tóm tắt tắt

 Khái Khái niệm niệm interface: interface:

 Lớp Lớp = Interface + = Interface + Khai Khai báo báo private + private + Cài Cài đặt đặt

 Lớp Lớp kế kế thừa thừa thừa thừa hưởng hưởng interface interface lớp lớp cơ cơ sở sở

 Giả Giả lập lập interface interface trong trong C++: abstract class C++: abstract class.

 Hàm Hàm ảo ảo::

 Hàm Hàm ảo ảo::

 Chỉ Chỉ ràng ràng buộc buộc với với interface, interface, không không ràng ràng buộc buộc cài cài đặt đặt

 Khai Khai báo báo dùng dùng “virtual” “virtual”

 Phương Phương thức thức hủy hủy ảo ảo::

 Phương Phương thức thức hủy hủy phải phải luôn luôn là là hàm hàm ảo ảo

Trang 19

[[yyy yyy]] void f1() { void f1() { coutcout << “Good morning.<< “Good morning.\\n”; n”; f2(); f2(); }}

[[zzz zzz]] void f2() { void f2() { coutcout << “Good afternoon.<< “Good afternoon.\\n”; }n”; }

};

class B: public A

{ public:

Cho Cho biếtbiết nhữngnhững gìgì xuấtxuất hiệnhiệntrên

trên mànmàn hìnhhình trongtrong cáccáctrường

trường hợphợp::

a) [a) [yyyyyy] ] trốngtrống, [, [zzzzzz] ] trốngtrống b) [

b) [yyyyyy] ] trốngtrống, [, [zzzzzz] virtual.] virtual.c) [

c) [yyyyyy] virtual, [] virtual, [zzzzzz] ] trốngtrống { public:

void f1() {

void f1() { coutcout << “Good evening.<< “Good evening.\\n”; n”; f2(); f2(); }}

void f2() { void f2() { coutcout << “Good night.<< “Good night.\\n”; }n”; }};

void main()

{{

A *p = new B;

pp >f1();>f1();

}}

c) [c) [yyyyyy] virtual, [] virtual, [zzzzzz] ] trốngtrống d) [

d) [yyyyyy] virtual, [] virtual, [zzzzzz] virtual.] virtual

Trang 20

Bài tập tập

 Bài Bài tập tập 9.2: 9.2:

Cho 2

Cho 2 loại loại hình hình::

Hình Hình tam tam giác giác: : biểu biểu diễn diễn bởi bởi 3 3 đỉnh đỉnh

Hình Hình chữ chữ nhật nhật: : biểu biểu diễn diễn bởi bởi 2 2 điểm điểm trên trên trái trái và và dưới dưới phải phải

Nếu thêm thêm vào vào loại loại hình hình mới mới là là hình hình tròn tròn

Hình Hình tròn tròn: : biểu biểu diễn diễn bởi bởi tâm tâm và và bán bán kính kính

Khi

Khi đó đó, , chương chương trình trình sẽ sẽ thay thay đổi đổi như như thế thế nào nào? ?

Trang 22

Bài tập tập

 Bài Bài tập tập 9.4: 9.4:

Cho

Cho bảng bảng cách cách thức thức hoạt hoạt động động của của các các loài loài động động vật vật như như sau sau::

Ăn Di chuyển Sinh sản

Cá mập Tạp Bơi Đẻ trứng

Cá chép chép Phiêu sinh Bơi Đẻ trứng

Trang 23

dv.anTapdv.anTap();();

V con =

V con = dv.deTrungdv.deTrung();();

}}

Trang 24

Yêu cầu cầu::

Sử Sử dụng dụng ((không không chỉnh chỉnh sửa sửa) ) lớp lớp Line Line và và Rectangle Rectangle.

Hàm Hàm vẽ vẽ phải phải không không đổi đổi khi khi thêm thêm hình hình mới mới vào vào

Point m_p2;

public:

void void drawRectdrawRect();();

};

Ngày đăng: 12/01/2014, 16:58

TỪ KHÓA LIÊN QUAN