18:38
0

Abstract:
là lớp không tạo ra đối tượng.
Ngôn ngữ C++:
class A
{
   private:
      
string _strName;
   public:
     
virtual void Method_A() { };
      virtual void Method_B() = 0;
};

Class kế thừa từ lớp A phải cài đặt đầy đủ các phương thức thuần ảo của lớp A (virtual =0). Còn các phương thức ảo bình thường thì có thể cài đặt lại hoặc không. (Sử dụng mặc định của class A).


Ngôn ngữ C#:
abstract class A
{
   private
string _strName;
   public
virtual void Method_A() { };
   public abstract void Method_B();
};

Class kế thừa từ lớp A phải cài đặt đầy đủ các phương thức abstract của lớp A bằng cách Override (public override void Method_B()). Còn các phương thức ảo bình thường thì có thể cài đặt lại hoặc không. (Sử dụng mặc định của class A).

Ngôn ngữ Java:
abstract class A
{
   private
string _strName;
   public
void Method_A() { };
   public abstract void Method_B();
};

Class kế thừa từ lớp A phải cài đặt đầy đủ các phương thức abstract của lớp A bằng cách viết lại phương thức (public void Method_B()). Vì java có tính đa hình sẵn nên các phương thức bình thường có thể xem là phương thức ảo và muốn cài đặt lại thì cài bình thường.




Interface:
là giao diện các chức năng sử dụng.
Ngôn ngữ C++:
class A
{

   public:
     
virtual void Method_A() = 0;
      virtual void Method_B() = 0;
};


Các lớp kế thừa phải cài đặt đầy đủ các phương thức ảo nếu không cài đặt sẽ bị báo lỗi.

Ngôn ngữ C#:
interface class A
{

     void Method_A();
     void Method_B();
};


Các lớp kế thừa phải cài đặt đầy đủ các phương thức ảo nếu không cài đặt sẽ bị báo lỗi.
Để phân biệt các Interface khác nhau thì khi viết lại cài đặt nên viết: A.Method_A();
Các phương thức viết lại không được có các thuộc tính: public/private/protected.

Ngôn ngữ Java:
interface class A
{

    public void Method_A();
    public void Method_B();
};


Các lớp kế thừa phải cài đặt đầy đủ các phương thức ảo nếu không cài đặt sẽ bị báo lỗi.
Khác với C#. Java phải khao báo rỏ ràng các thuộc tính của các phương thức.
Vì Java có tính đa hình sẵn nên có thể viết lại hành động một cách bình thường.


Tất cả các kế thừa có thể sử dụng theo kiểu: A user = new B();

0 nhận xét:

Đăng nhận xét