Nhắc lại:
– Tính kế thừa là: Con người <- Thú có vú <- Động vật <- …
Từ khóa sử dụng: extend, implements, abtract,..
(Kế thừa về thuộc tính)
– Tính đa hình: Với mỗi phương thức tên giống nhau nhưng với mỗi loại đối tượng lại được thự hiện 1 cách khác nhau!
Từ khóa sử dụng virtual, override, interface,..
(Đa hình về phương thức! )

Trong bài này
1. Khi nào sử dụng abtract class khi nào sử dụng interface
2. Sự khác biệt khi có và ko sử dụng virtual/override

Trả lời câu hỏi 1:
– Sử dụng abtract khi ta có các thuộc tính muốn kế thừa, có 1 số phương thức muốn sử dụng lại.
– Interface chỉ dùng để ép buộc 1 lớp nào đó phải có 1 phương thức nào đó!
Có thể nói đây là đặc trưng cho sự khác biệt giữa 2 tính chất đa hình (interface) và kế thừa (abtract class)!

– Khi lớp đó thể hiện cho 1 đối tượng cụ thể thì nên sử dụng base class với một số phương thức abtract để bắt buộc nó override lại (ko nên sử dụng interface trong trường hợp này). Chỉ cần cái đó miêu tả 1 đối tượng thì đó chắc chắn phải sử dụng 1 class!

– Khi có 1 phương thức, cần sử dụng ở nhiều nơi, mà phương thức đó lại ít liên quan đến thuộc tính hoặc hành vi của đối tượng (những thứ mà định hình nên đối tượng), hoặc đó chỉ là 1 chức năng nho nhỏ nào đó, thì nến sử dụng interface.

Advertisements