intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Chương 4: Kế thừa và đa hình - ThS. Phạm Thanh An

Chia sẻ: Nguyễn Thị Huyền | Ngày: | Loại File: PDF | Số trang:74

70
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Chương 4: Kế thừa và đa hình - ThS. Phạm Thanh An hướng đến trình bày các nội dung cơ bản về đặ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ời các bạn cùng tham khảo nội dung thông tin tài liệu.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Chương 4: Kế thừa và đa hình - ThS. Phạm Thanh An

  1. 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
  2. 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.
  3. 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
  4. Đặ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 Khái quát hóa (Generalization) Lớp cơ sở (Base class) Động vật có vú Đặc biệt hóa Chó Lớp dẫn xuất (Derived class) (Specialization)
  5. Kế thừa  Trong C#, một quan hệ đặc biệt hóa, được cài đặt thông qua kế thừa.  Khái niệm kế thừa được sử dụng để khai báo một lớp mới dựa trên lớp đã tồn tại Người Công nhân Khách hàng Sinh viên
  6. Kế thừa (tt)  Khai bao một lớp kế thừa từ một lớp khác ta sử dụng dấu “:” theo sau là tên lớp được kế thừa.  Ví dụ:  Chúng ta đã khai báo lớp người  Khai báo lớp sinh viên kế thừa lớp người public class Sinhvien : Nguoi
  7. Kế thừa (tt)  Lớp mới được gọi là lớp dẫn xuất (Derived- Class)  Lớp được kế thừa gọi là lớp cơ sở (base- class)  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)
  8. 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ở.
  9. Ví dụ 1 : kế thừa Animal Cat
  10. 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;} } public string quequan { get { return quequan; } set { quequan = value; } } public void Chaohoi(){ MessageBox.show (“Xin chao từ lớp Nguoi”); } } // kết thúc định nghĩa lớp
  11. Ví dụ 2: kế thừa (tt) public class Sinhvien : Nguoi { private string sinhvienid; public int lop; public string Sinhvienid { get { return sinhvienid; } set {sinhvienid = value;} } public void lenlop() { MessageBox.show(“Chúc mùng bạn lên lớp”); lop++; Sinhvien sv = new Sinhvien(); } sv.Ten = “21HT2”; } sv.chaohoi(); sv.lenlop();
  12. Ví dụ: kế thừa
  13. Ví dụ 3 : Kế thừa using System; namespace vidu2 { class Inherit class Rectangle:Shape { { static void Main(string[] args) public Rectangle() { { Square squareObj =new Square(); length=0; Rectangle rectObj =new Rectangle(); breadth=0; squareObj.calculateArea(10,20); } rectObj.calculateArea(20,20); public void calculateArea(int len, int breadth) } { } Console.WriteLine ("Area of a Rectangle is class Shape {0}",len*breadth); { } public int length; } public int breadth; public void calculateArea(int len, int breadth); { } } }
  14. Ví dụ 3: Kế thừa class Square:Shape { public Square() { } public void calculateArea(int side1, int side2) { int area; area = side1*side2; Console.WriteLine ("Area of a Square is {0}",area); } } }
  15. Bổ từ truy cập “protected”  Bảo vệ các thành phần hay các phương thức chỉ có thể được truy cập:  Trong phạm vi lớp mà các biến, phương thức được khai báo  Lớp dẫn xuất  Sử dụng từ khóa protected.
  16. 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
  17. Ví dụ 1: Từ khóa base
  18. 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); } }
  19. Ví dụ : Sử dụng từ khóa base public class ListBox: Window { private string mListBoxContents; public ListBox(int top, int left, string theContents) : base(top, left) // gọi phương thức thiết lập của lớp cơ sở { mListBoxContents = theContents; } public new void DrawWindow() { base.DrawWindow(); Console.WriteLine(“ ListBox write: {0}”, mListBoxContents); } }
  20. Ví dụ : Sử dụng từ khóa base public class Tester { public static void Main() { Window w = new Window(5, 10); w.DrawWindow(); ListBox lb = new ListBox( 20, 10, “Hello world!”); lb.DrawWindow(); } }
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2