Bài đăng nổi bật

 

Interface C#

Trong C#, một interface chứa các định nghĩa cho một nhóm các chức năng liên quan mà một lớp có thể triển khai.

Các giao diện rất hữu ích vì chúng đảm bảo cách một lớp hoạt động. Điều này, cùng với thực tế là một lớp có thể triển khai nhiều giao diện, giúp tổ chức và mô-đun hóa các thành phần của phần mềm.

Cách tốt nhất là bắt đầu tên của giao diện bằng “I”.


interface IAutomobile
{
  string LicensePlateget; }
  double Speedget; }
  int Wheelsget; }
}

// The IAutomobile interface has three properties. Any class that implements this interface must have these three properties.

public interface IAccount
{
  void PayInFundsdecimal amount );
  bool WithdrawFundsdecimal amount );
  decimal GetBalance ();
}

// The IAccount interface has three methods to implement.

public class CustomerAccount : IAccount
{ }

// This CustomerAccount class is labeled with : IAccount, which means that it will implement that interface.


Kế thừa C#

Trong C#, kế thừa là quá trình một lớp kế thừa các thành viên của lớp khác. Lớp kế thừa được gọi là lớp con hoặc lớp dẫn xuất . Lớp khác được gọi là lớp cha , hoặc lớp cơ sở .

Khi bạn định nghĩa một lớp kế thừa từ một lớp khác, lớp dẫn xuất mặc nhiên nhận được tất cả các thành viên của lớp cơ sở, ngoại trừ các hàm tạo và trình hoàn thiện của nó. Do đó, lớp dẫn xuất có thể sử dụng lại mã trong lớp cơ sở mà không cần phải triển khai lại nó. Trong lớp dẫn xuất, bạn có thể thêm nhiều thành viên hơn. Theo cách này, lớp dẫn xuất mở rộng chức năng của lớp cơ sở.


public class Honeymoon : TripPlanner
{ }

// Similar to an interface, inheritance also uses the colon syntax to denote a class inherited super class. In this case, Honeymoon class inherits from TripPlanner class.

// A derived class can only inherit from one base class, but inheritance is transitive. That base class may inherit from another class, and so on, which creates a class hierachy.

Từ khóa protected trong C #

Trong C#, một thành viên protected có thể được truy cập bởi lớp hiện tại và bất kỳ lớp nào kế thừa từ đó. Điều này được chỉ định bởi công protectedcụ sửa đổi quyền truy cập.


public class BankAccount
{
  protected decimal balance0;
}

public class StudentAccount : BankAccount
{
}

// In this example, the BankAccount (superclass) and StudentAccount (subclass) have access to the balance field. Any other class does not.

Từ khóa override/virtual C#

Trong C#, một lớp dẫn xuất (lớp con) có thể sửa đổi hành vi của một phương thức kế thừa. Phương thức trong lớp dẫn xuất phải được gắn nhãn overridevà phương thức trong lớp cơ sở (lớp cha) phải được gắn nhãn virtual.

Từ khóa virtualvà overridehữu ích vì hai lý do:

  1. Vì trình biên dịch xử lý các phương thức "thông thường" và ảo (virtual) khác nhau, chúng phải được đánh dấu như vậy.
  2. Điều này tránh "ẩn" các phương thức kế thừa, giúp các nhà phát triển hiểu được ý định của mã.

class BaseClass  
{  
  public virtual void Method1()  
  {  
    Console.WriteLine("Base - Method1");  
  }  
}  

class DerivedClass : BaseClass  
{  
  public override void Method1()  
  {  
    Console.WriteLine("Derived - Method1");   }  
}  

Từ khóa abstract C#

Trong C #, công cụ sửa đổi (access modifier) abstract chỉ ra rằng điều đang được sửa đổi có phần triển khai bị thiếu hoặc không đầy đủ. Nó phải được thực thi hoàn toàn bởi một lớp dẫn xuất, không trừu tượng.

Công cụ sửa đổi abstract có thể được sử dụng với các lớp, phương thức, thuộc tính, trình chỉ mục và sự kiện. Sử dụng công cụ sửa đổi abstract trong khai báo lớp để chỉ ra rằng một lớp chỉ được dự định là lớp cơ sở của các lớp khác, không được khởi tạo riêng.

Nếu có ít nhất một thành viên của một lớp abstract, thì lớp chứa cũng phải được đánh dấu abstract.

Việc thực hiện đầy đủ của một abstractthành viên phải được đánh dấu bằng override.

Post a Comment

أحدث أقدم