Thời gian đăng: 18/5/2016 16:41:16
Việc kế thừa trong java cơ bản là môt phương pháp mà trong đó một đối tượng thu được tất thảy thuộc tính và hành động của đối tượng cha. Ý tưởng đằng sau tính kế thừa trong lập trình java cơ bản là bạn có khả năng tạo các lớp mới mà được xây dựng dựa trên các lớp đang tồn tại. Khi bạn kế thừa từ một lớp đang tồn tại , bạn có khả năng tái sử dụng các phương thức và các trường của lớp cha , và bạn cũng có khả năng Sửa sang thêm các phương thức và các trường khác. Tính kế thừa trình diễn mối giao tế IS-A , còn được gọi là mối giao tế cha-con.
Khi chúng tôi nói về tính kế thừa , từ khóa luôn luôn nhất được sử dụng là extends trong java và implements trong java cơ bản. Những từ khóa này có khả năng định nghĩa một kiểu là loại IS-A của loại khác. Sử dụng những từ khóa , chúng tôi có khả năng tạo một đối tượng sử dụng thuộc tính của đối tượng khác. Chúng tôi sử dụng từ khóa extends của lớp con để có khả năng kế thừa các thuộc tính của lớp cha trừ các thuộc tính private của lớp cha.
vì sao sử dụng tính kế thừa trong java cơ bản?
Để ghi đè phương thức ( Method Overriding ) , từ thời gian này có khả năng thu được tính đa hình tại runtime.
Để làm tăng tính tái sử dụng của code.
Cú pháp của Tính kế thừa trong java cơ bản
class ten_lop_con extends ten_lop_cha
//cac phuong thuc va cac truong
Từ khóa extends chỉ rằng bạn đang tạo một lớp mới mà kế thừa từ một lớp đang tồn tại. Trong java cơ bản , một lớp mà được kế thừa được gọi là một lớp cha. Lớp mới được gọi là lớp con.
Tổng hợp loại kế thừa trong khoa hoc lap trinh java co ban
trên cơ sở các lớp thì có 3 loại kế thừa trong java cơ bản , đó là single ( đơn ) , multilevel ( nhiều tầng ) và hierarchical ( có cấu trúc ). Trong lập trình Java , đa kế thừa ( multiple ) và kế thừa lai ( hybrid ) chỉ được hỗ trợ phê chuẩn Interface. Chúng tôi sẽ tìm hiểu về Interface trong chương sau đó.
Ghi chú: Đa kế thừa không được hỗ trợ trong Java phê chuẩn lớp. Khi một lớp kế thừa từ nhiều lớp , thì đây là đa kế thừa.
Câu hỏi: vì sao đa kế thừa không được hỗ trợ trong Java phê chuẩn lớp?
Trả lời: Để giảm tính Rắc rối và làm đơn giản hóa ngôn ngữ , đa kế thừa không được hỗ trợ trong Java. Giả như có tình huống có ba lớp là A , B và C. Lớp C kế thừa lớp A và B. Nếu các lớp A và B có cùng phương thức và bạn gọi nó từ đối tượng lớp con , thì điều này gây là tính lưỡng nghĩa là để gọi phương thức của lớp A hoặc lớp B.
bởi chưng , compile time error thì Trội hơn là runtime error , java cơ bản sẽ thông cáo một compile time error nếu bạn kế thừa 2 lớp. Từ thời gian này , dù bạn có hay không có cùng phương thức hay khác phương thức , thì đó cũng là một lỗi tại compile time.
Khi bạn đã Hiểu ra về từ khóa extends , chúng tôi cùng tìm hiểu về từ khóa implements trong giao tế IS-A.
Từ khóa implements được sử dụng bởi các lớp mà kế thừa từ Interface. Interface có khả năng không bao giờ được kết thừa bởi các lớp.
gioi thieu ve java - Từ khóa instanceof
bây giờ chúng tôi sẽ dùng toán tử instanceof để thẩm tra xem B có phải là một A và dog có phải là một A.
giao tế HAS-A trong Java
Có những giao tế chính yếu dựa vào cách sử dụng. Nó chính xác có hay không một lớp cụ thể HAS-A. Giao tế này giúp chúng tôi giảm được dư dật trong code cũng như tránh các bug.
Một đặc điểm quan trọng nữa phải ghi nhớ là Java chỉ hỗ trợ kế thừa đơn. Điều này nghĩa là một lớp không thể kế thừa từ nhiều hơn một lớp. Từ thời gian này , đoạn code dưới đây là không hợp lệ:
public class C extends A , B
mặc dầu vậy một lớp vẫn có khả năng implement một hoặc nhiều interface. Điều này loại bỏ khả năng không thể đa kế thừa trong java cơ bản
|
|