-
Title:
-
Description:
-
Giờ thì chuyển sang phần thêm display method. Giả sử là
-
để hiển thị một choice question trong định dạng như này. Trước tiên là text của câu hỏi.
-
Tiếp theo là tất cả các lựa chọn. Và ta thêm các số 1, 2, 3, 4 vào trước
-
mỗi lựa chọn để dễ phân biệt hơn.
-
Phần này thì cũng dễ. Ta chỉ việc lặp qua mảng các lựa chọn
-
và in chúng ra, với một con số ở trước. Và vì cái này không có liên quan gì
-
tới việc học về inheritance (kế thừa), tôi sẽ đưa cho bạn đoạn code này.
-
Nó ở đây. Nên ta in ra số của lựa chọn và lựa chọn đó.
-
Trong Java, các lựa chọn được đánh số là 0, 1, 2, 3.
-
Và ta thì muốn là 1, 2, 3, 4, nghĩa là tính bằng
-
i + 1 như trên đây. Phần khó là hiển thị text của câu hỏi.
-
Và, question text thì ở trong Superclass object, và ta không thể
-
lấy nó trực tiếp. Hãy xem Superclass. Đây là question text,
-
ta có method nào để đọc nó không? có đó. Và ta có thể gọi display,
-
và sau đó nó sẽ in ra. Đó là thứ ta cần. Hãy làm thế.
-
Ở đây tôi gọi display, nó sẽ hiển thị text và sau đó tôi có thể hiện thị
-
các lựa chọn này. Oh, có điều gì đó không ổn ở đây,
-
tôi có lỗi StackOverflow Error. Đó là do có một method
-
mà gọi chính nó. Sao lại là chính nó. Xem method đang gọi display,
-
và ở đây nó đang gọi chính nó. Đó là vấn đề, tôi không muốn gọi method của tôi,
-
tôi muốn gọi display method của Question class cơ mà. Nên, vấn đề khó khăn là,
-
có 2 method gọi là display, ở trong Superclass và ở subclass này.
-
Và tên của nó giống nhau. Đó chính là vấn đề luôn xảy ra khi ta override một method.
-
Giờ, có một cấu trúc đặc biệt để gọi Superclass method,
-
và nó như này. Bạn đơn giản ghi là super.display() Tiếp tục và thử nó
-
và sửa lỗi trong display method.