Về việc kế thừa trong OOP Java

Mọi người cho em hỏi trong trả lời này với ạ. Về việc kế thừa , nếu một lớp có phương thức final thì lớp con không được phép kế thừa phương thức final của lớp cha. Về câu không được phép kế thừa phương thức final của lớp cha và về câu không được ghi đè phương thức final của lớp cha là khác nhau ạ. Em xin cảm ơn ạ.

Nó khác về cấp độ.
Cấp độ lớp: final class lớp không thể có con.
Cấp độ phương thức: class (không final) nhưng một vài phương thức bên trong có final thì các phương thức đó không được phép ghi đè (@Override).

2 Likes

Vậy thưa anh, khi thầy em hỏi là phương thức final của lớp cha như em trả lời: Về việc kế thừa , nếu một lớp có phương thức final thì lớp con không được phép kế thừa phương thức final của lớp cha có đúng không ạ. Thầy em bảo hiểu sai, về không được phép kế thừa sửa lại không được phép ghi đè ạ.

Kế thừa và ghi đè nó k giống nhau, kế thừa là con được dùng đồ của cha, ghi đè là việc con dùng đồ của con, không dùng đồ của cha nữa.
VD: class cha có phương thức public hello thì class con không cần khai báo phương thức hello cũng dùng được phương thức hello, đấy gọi là kế thừa. Còn khi class con định nghĩa lại phương thức hello thì gọi là ghi đè

6 Likes

Em cảm ơn ạ, em hiểu rồi ạ

Cho mình hỏi ké, tại sao người ta lại phải ghi đè, có lẽ là do từ vựng tiếng Anh hạn chế nên người ta thay vì viết đoạn code mới và dùng từ mới, ghi đè cũng là việc viết code, nó có ý nghĩa gì so với viết một phương thức hoàn toàn mới? Ghi đè có khi còn làm cho việc làm việc team trở nên rối rắm bởi vì lại phải đoán xem ông ghi đè dùng lại tên cũ với mục đích mới thì liệu nó (cái ghi đè ở con) có làm cho vấn đề trầm trọng, sinh bug mà ở cha không tồn tại?

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?