THỪA KẾ TRONG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Lập trình hướng đối tượng là gì?. THỪA KẾ TRONG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Thừa kế là gì?. Thừa kế là một trong những điểm đặc biệt của lập trình h
Trang 1THẢO LUẬN NGÔN NGỮ LẬP TRÌNH
Đề tài: Thừa kế trong lập trình hướng đối tượng
Nhóm 4A:
Nguyễn Minh Quan Huấn 070128T
Nguyễn Minh Hoàng 070120T
Đặng Thanh Bình 070035T
Lưu Văn Minh Tri 070351T
Trang 2THỪA KẾ TRONG LẬP TRÌNH HƯỚNG
ĐỐI TƯỢNG
Lập trình hướng đối tượng là gì?
Lập trình hướng đối tượng (OPP) là kỹ thuật lập trình hỗ trợ công nghệ đối tượng
Giúp tăng năng suất, đơn giản hóa độ phức tạp khi bảo trì cũng như mở rộng phần mềm
Trang 3THỪA KẾ TRONG LẬP TRÌNH HƯỚNG
ĐỐI TƯỢNG
Thừa kế là gì?
Thừa kế là một trong những điểm đặc biệt của lập
trình hướng đối tượng
Tạo ra những kiểu mới dựa trên những kiểu đã có với những kỹ năng mới
Thực hiện bằng cách tạo ra lớp con từ lớp có sẵn
Trang 4THỪA KẾ TRONG LẬP TRÌNH HƯỚNG
ĐỐI TƯỢNG
Lớp dẫn xuất và thừa kế
Một lớp được xây dựng thừa kế một lớp khác gọi là dẫn xuất
Lớp dùng để xây dựng lớp dẫn xuất gọi là lớp cơ sở
Trang 5THỪA KẾ TRONG LẬP TRÌNH HƯỚNG
ĐỐI TƯỢNG
Cách xây dựng lớp dẫn xuất.
Để xây dựng lớp C dẫn xuất từ A và B, ta viết như sau: Class C : public A, public B
{
Private:
// Khai báo các thuộc tính Public:
// Các phương thức };
Trang 6THỪA KẾ TRONG LẬP TRÌNH HƯỚNG
ĐỐI TƯỢNG
Thừa kế đơn
class D : px B {
… };
B là lớp cơ sở-lớp có trước
D lớp thừa kế trực tiếp
px thuộc tính thừa kế(public, private, protected)
Trang 7THỪA KẾ TRONG LẬP TRÌNH HƯỚNG
ĐỐI TƯỢNG
D sẽ được thừa kế tất cả các thành phần từ B
- về dữ liêu: Một lớp dẫn xuất sẽ thừa kế tất cả các thành phần dữ liệu của lớp cơ sở
- về hàm thành phần: tất cả trừ hàm tạo, hàm hủy,
hàm bạn và hàm toán tử gán
Các thành phần có cùng tên bị ẩn đi
Trang 8THỪA KẾ TRONG LẬP TRÌNH HƯỚNG
ĐỐI TƯỢNG
Thừa kế đa
Đa thừa kế là việc một lớp có nhiều lớp cơ sở trực tiếp
Một lớp có thể có bao nhiêu lớp tùy ý
Trang 9THỪA KẾ TRONG LẬP TRÌNH HƯỚNG
ĐỐI TƯỢNG
Trang 10THỪA KẾ TRONG LẬP TRÌNH HƯỚNG
ĐỐI TƯỢNG
Đoạn C++ sử dụng đa thừa kế
#include <iostream.h>
class Cho
{
public:
void Keu() { cout << "Gau "; }
};
class Meo
{
public:
Trang 11THỪA KẾ TRONG LẬP TRÌNH HƯỚNG
ĐỐI TƯỢNG
class ChoLaiMeo: public Meo, Cho
{
};
void Test(Meo m)
{
m.Keu();
}
void main()
{
ChoLaiMeo cm;
Test(cm);
}
Trang 12THỪA KẾ TRONG LẬP TRÌNH HƯỚNG
ĐỐI TƯỢNG
Đoạn code C# sử dung interface
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
Trang 13THỪA KẾ TRONG LẬP TRÌNH HƯỚNG
ĐỐI TƯỢNG
{
static void Main(string[] args)
{
ChoLaiMeo cm = new ChoLaiMeo();
Test(cm);
}
public static void Test(IMeo c)
{
c.Keu();
}
}
Trang 14THỪA KẾ TRONG LẬP TRÌNH HƯỚNG
ĐỐI TƯỢNG
class Cho
{
}
interface IMeo
{
void Keu();
}
class Meo : IMeo
{
public void Keu()
Trang 15THỪA KẾ TRONG LẬP TRÌNH HƯỚNG
ĐỐI TƯỢNG
class ChoLaiMeo : Cho, IMeo
{
public void Keu()
{
Console.Write("Gau ");
}
}
}