JAVA CORE - Trang 18

www.updatesofts.com





Hình 1.4 Tính thừa kế

1.9.1 Tính Đa Thừa kế

Trong tất cả các ví dụ trên, một lớp thừa kế chỉ từ một lớp. Ngay cả trong ví dụ thừa kế về
các loại phương tiện di chuyển, mỗi lớp con chỉ có một lớp cha. Trường hợp như thế gọi là
‘thừa kế đơn’ (single inheritance).

Trong ‘đa thừa kế’, một lớp con thừa kế từ hai hay nhiều lớp cha.

Hãy khảo sát ví dụ sau:








Trong hình trên, chúng ta đã xây dụng một lớp ‘Vẽ một hình’, lớp này thừa hưởng ba lớp:
‘Đường thẳng’, ‘Đường tròn’, ‘Hình ảnh’. Như thế lớp ‘Vẽ một hình’ kết hợp chức năng của
ba lớp trên thêm vào chức năng được định nghĩa bên trong nó.

Lớp ‘Vẽ một hình’ là một ví dụ về tính đa thừa kế.

Có thể sử dụng tính đa thừa kế để xây dựng một lớp mới, lớp này dẫn xuất chức năng của
nó từ một vài lớp khác. Như thế, xét theo góc cạnh của người sử dụng lớp mới này, chỉ
cần một lớp mà cung cấp tất cả các chức năng. Như vậy, họ không cần phải sử dụng
nhiều đối tượng khác nhau.

Sự thuận lợi quan trọng nhất của tính thừa kế là nó thúc đẩy việc tái sử dụng mã chương
trình.

Trong ví dụ trên, chúng ta có ba lớp ‘Đường thẳng’, ‘Đường tròn’ và ‘Hình ảnh’. Giả thiết
rằng ba người khác nhau xây dựng ba lớp này riêng biệt. Bây giờ, người sử dụng cần xây
dựng một lớp để vẽ đường thẳng, vẽ đường tròn cũng như hiển thị hình ảnh. Vì thế họ tìm
kiếm xem có lớp nào đáp ứng một hoặc tất cả các yêu cầu đó. Nếu có những lớp cung cấp
chức năng thỏa yêu cầu thì người sử dụng sẽ thừa kế những lớp đó để tạo một lớp mới.

Giờ đây người sử dụng chỉ còn phải viết mã chương trình cho những đặc tính chưa có sau
tiến trình thừa kế. Người sử dụng có thể sử dụng chính ba lớp trên. Tuy nhiên, sự thừa kế
cung cấp một bó những chức năng hỗn độn trong một lớp.

1.10 Tính Đa hình

=

+

+

Lớp Đường
thẳng
Khởi điểm
Điểm tận cùng
Vẽ đường thẳng

Lớp Đường
tròn
Bán kính
Tâm điểm
Vẽ đường tròn

Lớp Hình ảnh

Hình ảnh
Vẽ hình ảnh

Lớp Vẽ một
hình

Nhận hình vẽ
Vẽ hình

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.