Chương 5 Thừa kế và Đa hình
5.2.1. Thực hiện kế thừa
Trong C#, khi ta tạo một lớp kế thừa bằng cách công một thêm dấu “:” và sau tên của lớp kế thừa và theo sau đó là lớp cơ sở như sau:
public class ListBox: Window có nghĩa là ta khai báo một lớp mới ListBox kế
thừa từ lớp Window.
Lớp kế thừa sẽ thừa hưởng được tất các phương thức và biến thành viên của lớp cơ sở, thậm chí còn thừa hưởng cả các thành viên mà cơ sởđã thừa hưởng.
Ví dụ 5-1 Minh hoạ cách dùng lớp kế thừa
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 public void DrawWindow( )
{
System.Console.WriteLine("Drawing Window at {0}, {1}", top, left); }
// these members are private and thus invisible // to derived class methods; we'll examine this // later in the chapter
private int top; private int left; }
// ListBox kế thừa từ Window public class ListBox : Window {
// thêm tham số vào constructor
public ListBox( int top, int left, string theContents): base(top, left) // gọi constructor cơ sở
{
mListBoxContents = theContents; }
// tạo một phương thức mới bởi vì trong
// phương thức kế thừa có sự thay đổi hành vi public new void DrawWindow( )
{
base.DrawWindow( ); // gọi phương thức cơ sở
System.Console.WriteLine ("Writing string to the listbox: {0}", mListBoxContents);
}
private string mListBoxContents; // biến thành viên mới }
public class Tester {
public static void Main( ) {
// tạo một thể hiện cơ sở
Window w = new Window(5,10); w.DrawWindow( );
// tạo một thề hiện kế thừa
ListBox lb = new ListBox(20,30,"Hello world"); lb.DrawWindow( );
} }
Kết quả:
Drawing Window at 20, 30
Writing string to the listbox: Hello world