Bài giảng Kỹ thuật lập trình: Chương 4 - ThS. Phạm Thanh An - Pdf 14

Chương 4: Kế thừa và Đa hình
(
Inheritance and Polymorphism )
ThS. Phạm Thanh An
Khoa công nghệ thông tin
Đại học Ngân hàng Tp. Hồ Chí Minh
Nội dung trình bày

Đặc biệt hóa và tổng quát hóa.
 Quan hệ kế thừa.

Đa hình.

Lớp trừu tượng.

Các lớp lồng nhau.
Mục tiêu

Tìm hiểu mối quan hệ giữa các đối
tượng trong thế giới thực

Cách thức mô hình hóa các mối quan hệ
này trong chương trình
Đặc biệt hóa và tổng quát hóa

Quan hệ là một (is a) là một sự đặc biệt hóa
Động vật có vú
Chó
Lớp cơ sở (Base class)
Lớp dẫn xuất (Derived class)
Khái quát hóa

Một đối tượng của lớp dẫn xuất thì được xem
như một đối tượng của lớp cơ sở của nó

Một đối tượng lớp cơ sở không được xem
như là một đối tượng của bất kỳ lớp dẫn xuất
nào

Mọi lớp trong .Net đều kế thừa từ lớp object
(kế thừa không tường minh)
Kế thừa (tt)

Lưu ý:

Lớp dẫn xuất sẽ kế thừa tất cả các thành
phần không là private (non-private) của lớp
cơ sở, bao gồm tất cả các phương thức và
biến thành viên.
 Lớp dẫn xuất không kế thừa phương thức
thiết lập ở lớp cơ sở.
Ví dụ 1 : kế thừa
Animal
Cat
Ví dụ 2: kế thừa
public class Nguoi
{ private string ten;
private string quequan; // etc.
public string Ten
{ get { return ten;}
set { ten = value;}
}

using System;
namespace vidu2
{
class Inherit
{
static void Main(string[] args)
{
Square squareObj =new Square();
Rectangle rectObj =new Rectangle();
squareObj.calculateArea(10,20);
rectObj.calculateArea(20,20);
}
}
class Shape
{
public int length;
public int breadth;
public void calculateArea(int len, int
breadth);
{
}
}
}
class Rectangle:Shape
{
public Rectangle()
{
length=0;
breadth=0;
}


Sử dụng từ khóa protected.
Từ khóa base

Sử dụng để truy cập đến các thành phần
của lớp cơ sở từ trong lớp dẫn xuất

Sử dụng để gọi phương thức thiết lập
của lớp cơ sở trong phương thức thiết
khi tạo ra một thể hiện của lớp dẫn xuất

Sử dụng từ khóa base trong một
phương thức static sẽ báo lỗi
Ví dụ 1: Từ khóa base
Ví dụ 2 : Sử dụng từ khóa base
using System;
public class Window
{
private int top;
private int left;
public Window( int top, int left)
{
this.top = top;
this.left = left;
}
public void DrawWindow()
{
Console.WriteLine(“Drawing Window at {0}, {1}”, top, left);
}
}

định của lớp cơ sở (phương thức thiết
lập không có tham số).

Gọi tường minh phương thức thiết cơ sở
với từ khóa base.
Phương thức thiết lập lớp dẫn xuất
public class A
{
public A (int n)
{
…}
……
}
public class B : A
{
public B (int n) : base (n)
{

}
……
}
Từ khóa sealed

Trong C#, Một lớp đã cho có chính xác duy
nhất lớp cơ sở trực tiếp (Đơn kế thừa)
 Từ khóa sealed được sử dụng để khai báo
một lớp không cho các lớp khác kế thừa
public sealed class A
{


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status