Lớp trừu tượng

Một phần của tài liệu Phát triển ứng dụng cơ sở dữ liệu với c và net framework (Trang 38 - 39)

Chương 5 Thừa kế và Đa hình

5.4. Lớp trừu tượng

Phương thức trừu tượng là phương thức chỉ có tên thôi và nó phải được cài đặt lại ở tất các các lớp kế thừa. Lớp trừu tượng chỉ thiết lập một cơ sở cho các lớp kế

thừa mà nó không thể có bất kỳ một thể hiện nào tồn tại.

Ví dụ 5-2 Minh hoạ phương thức và lớp trừu tượng

using System;

abstract public class Window {

// constructor takes two integers to // fix location on the console public Window(int top, int left) {

this.top = top; this.left = left; }

// simulates drawing the window // notice: no implementation

abstract public void DrawWindow( );

// these members are private and thus invisible // to derived class methods. We'll examine this // later in the chapter

protected int top; protected int left; }

// ListBox derives from Window public class ListBox : Window {

// constructor adds a parameter

public ListBox(int top, int left, string contents): base(top, left) // call base constructor

{

listBoxContents = contents; }

// an overridden version implementing the // abstract method

public override void DrawWindow( ) {

Console.WriteLine("Writing string to the listbox: {0}", listBoxContents); }

private string listBoxContents; // new member variable }

public class Button : Window {

public Button(int top, int left): base(top, left) {

}

// implement the abstract method public override void DrawWindow( ) {

Console.WriteLine("Drawing a button at {0}, {1}\n", top, left); }

}

public class Tester {

static void Main( ) {

Window[] winArray = new Window[3];

winArray[0] = new ListBox(1,2,"First List Box"); winArray[1] = new ListBox(3,4,"Second List Box"); winArray[2] = new Button(5,6);

for (int i = 0;i < 3; i++) { winArray[i].DrawWindow( ); } } } 5.4.1. Gii hn ca lp tru tượng

Ví dụ trên, phương thức trừu tượng DrawWindow() của lớp trừu tượng

Window được lớp ListBox kế thừa. Như vậy, các lớp sau này kế thừa từ lớp ListBox

đều phải thực hiện lại phương thức DrawWindow(), đây là điểm giới hạn của lớp trừu tượng.

Hơn nữa, như thế sau này không bao giờ ta tạo được lớp Window đúng nghĩa. Do vậy, nên chuyển lớp trừu tượng thành giao diện trừu tượng.

Một phần của tài liệu Phát triển ứng dụng cơ sở dữ liệu với c và net framework (Trang 38 - 39)

Tải bản đầy đủ (PDF)

(192 trang)