Tài liệu Hướng Đối Tượng Trong C# part 1 - Pdf 92

Lớp và Thừa kế:
Chúng ta đã được xem cách sử dụng lớp trong chương 2 nhưng để nắm được mối liên hệ
giữa các chương, chúng tôi sẽ tóm tắt một vài khái niệm về lớp. Lớp trong C# được định
nghĩa với cú pháp sau:
class MyClass
{
private int someField;

public string SomeMethod(bool parameter)
{
}
}
Các lớp bao gồm nhiều thành viên, mỗi thành viên là thuật ngữ(term) dùng để chỉ đến
một dữ liệu hay một chức năng nào đó được định nghĩa trong lớp đó. Ví dụ chúng ta
dùng thuật ngữ Function để chỉ những thành viên chứa mã như các phương
thức(methods), các thuộc tính(properties), constructor, hay các nạp chồng toán
hạng(Operator Overloads).
Tất cả các lớp trong C# là những kiểu tham khảo. Tức là khi bạn khai báo một kiểu lớp
thì có một biến lưu trữ sự tham khảo đến một thể hiện (instance) của lớp đó. Và sử dụng
lệnh new để tạo ra một đối tượng. Ví dụ tạo ra đối tượng myObject như sau:
MyClass myObject;
myObject = new MyClass();
Tuy nhiên bạn có thể khai báo và khởi tạo đối tượng cùng một lúc.
MyClass myObject = new MyClass();
Đơn thừa kế:
C# hỗ trợ đơn thừa kế giữa các lớp. Một lớp có thể thừa hưởng những thuộc tính và
phương thức từ một lớp khác. Cú pháp:
class MyDerivedClass : MyBaseClass

int DoSomething(int x) // want 2nd parameter with default value 10
{
DoSomething(x, 10);
}

int DoSomething(int x, int y)
{
// implementation
}
}
Trong bất kỳ một ngôn ngữ nào, phương thức nạp chồng có thể đem đến một lỗi nghiêm
trọng nếu nó bị gọi sai. Trong chương tới ta sẽ bàn cách để tránh đều đó. Trong C# có
một vài điểm khác nhỏ về thông số trong các phương thức nạp chồng cần biết như sau:

Nó không chấp nhận hai phương thức chỉ khác nhau về kiểu trả về.

Nó không chấp nhận hai phương thức chỉ khác nhau về đặc tính của một thông số
đang được khai báo như ref hay out.
Phương thức Overriden và Hide:
Bằng cách khai báo virtual trong một hàm ở lớp cơ sở thì cho phép hàm đó được
overriden trong bất kỳ một lớp thừa hưởng nào.
class MyBaseClass
{
public virtual string VirtualMethod()
{
return "This method is virtual and defined in MyBaseClass";
}
}
Như ví dụ trên, tức là ta có thể tạo ra một sự thực thi khác của VirtualMethod() trong
một lớp thừa hưởng của MyBaseClass. Và khi gọi phương thức trong một thể hiện của

Trong C# có một cú pháp đặc biệt để gọi những phiên bản cơ sở của một phương thứ
c từ
một lớp thừa hưởng. Cú pháp : base.<methodname>(). Ví dụ:
class CustomerAccount
{
public virtual decimal CalculatePrice()
{
// implementation
}
}

class GoldAccount : CustomerAccount
{
public override decimal CalculatePrice()
{
return base.CalculatePrice() * 0.9M;
}

Các lớp và hàm Abstract :
C# cho phép cả lớp và phương thức có thể khai báo abstract. Một lớp abstract không
được thể hiện và một phương thức abstract không được thực thi mà phải được overriden
trong bất kỳ lớp thừa hưởng không abstract nào. Một phương thức abstract sẽ tự động
được khai báo virtual. Nếu một lớp có phương thức abstract thì nó cũng là lớp abstract và
được khai báo như sau:
abstract class Building
{
public abstract decimal CalculateHeatingCost(); // abstract method
}
Sealed các lớp và phương thức:
C# cho phép các lớp và phương thức được khai báo sealed. Nếu là lớp có nghĩa là bạn


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