Tôi có một đối tượng của một phân lớp mở rộng siêu lớp của nó. Có một phương thức ghi đè trong lớp con có thể được gọi bằng cách sử dụng đối tượng. Có thể gọi hàm của lớp cha bằng cách sử dụng đối tượng lớp con không?Truy cập chức năng siêu hạng bằng cách sử dụng đối tượng lớp con
package supercall;
public class Main {
public static void main(String[] args) {
SomeClass obj = new SubClass();
obj.go(); //is there anything like, obj.super.go()?
}
}
class SomeClass {
SomeClass() {
}
public void go() {
System.out.println("Someclass go");
}
}
class SubClass extends SomeClass {
SubClass() {
}
@Override
public void go() {
System.out.println("Subclass go");
}
}
Hãy xem xét mã ở trên.
Ở đây nó in
Subclass đi
. Thay vào đó tôi phải in
lớp cha đi
.
Vâng. Nhưng đôi khi tôi cũng sẽ sử dụng phương thức của lớp con. Không phải là nó có thể gọi phương thức của siêu lớp theo cách khác sao? một cái gì đó như obj.super.go() ??? Tất nhiên, đây là một cấu trúc sai. Tôi có nghĩa là một cái gì đó tương tự ?? – bdhar
Ohh người đàn ông ... tôi vừa viết câu trả lời đó (không được đăng) ... shit !!! – RubyDubee
@bdhar: Vâng, bạn chỉ có thể gọi 'super'. Nhưng bạn cần phải thực hiện cuộc gọi đó từ * trong * lớp học. Nó không thể được thực hiện bên ngoài. –