30/09/2018, 21:53
Overide thuộc tính trong Java
Mọi người cho em hỏi có cách nào để Overide thuộc tính của lớp cha ở lớp con không ạ?
kiểu như:
class Parent {
int Age = 50;
.....
}
class Child extends Parent {
int Age = 10;
.....
}
ở hàm Main ta khai báo:
....main(...)
{
Parent ojb = new Child();
system.out.print("Tuoi : " + ojb.Age);
}
làm thế nào để vẫn giữ câu lệnh Parent ojb = new Child(); mà vẫn in ra được: Tuoi: 10 được không ạ?
em cám ơn!
Bài liên quan
1: Sai ve nguyên tắc. Parrent có Age rồi cái con có age nữa là gi.
2.Muốn làm cũng được, thêm hàm getAge ở supper class và subclass. Tìm hiểu thêm về đa hình.
This post was flagged by the community and is temporarily hidden.
Class Parent:
Class Child:
Cách trên có một vấn đề là khi viết như sau thì giá trị khởi tạo mặc định của class con hoặc cha có thể bị bỏ qua nếu làm việc team và không thống nhất spec:
Thông thường mình sẽ code như sau không biết có hợp lý không:
Class Parent:
Class Child:
Tuy nhiên cách trên lại vấp phải một vấn đề là mỗi lần sửa giá trị location thì phải nhớ đến cả cha lẫn con. Quên mất là degrade debug lỗi lòi mắt.
Class Parent:
Class Child:
Hi vọng có ích.
mình thì nghĩ cứ thuộc tính cho nó private hết , sau đó khai báo seter/geter , chứ nếu viết mà không xác định các quyền truy cập cho nó thì đã bỏ qua mất tính bao đóng của OOP rồi…