2010-06-09 37 views
5

Khi ghi đè một phương thức trong Java là có thể gọi phương thức "gốc". Ví dụ:Ghi đè Java "một phần"

public class A extends B{ 

    @Override 
    public void foo(){ 
    System.out.println("yep"); 
    // Then execute foo() as it's defined in B 
    } 

} 

Trả lời

12
public class A extends B{ 

    @Override 
    public void foo(){ 
    System.out.println("yep"); 
    super.foo(); // calls the method implemented in B 
    } 
} 
+0

Đánh dấu vào súng nhanh. Vì một lý do nào đó, tôi đã hiểu nhầm việc sử dụng siêu – Jla

+1

@DrDro: bạn có thể không hiểu lầm nó, bởi vì đây không phải là cách sử dụng duy nhất của 'super'. –

1

Bạn có thể gọi

super.foo(); 
2

Bạn đang tìm kiếm super.foo().

3

Việc sử dụng các keywork super là có nghĩa là cho điều này

super.foo(); 
1

Hãy thử điều này:

super.foo() 
7

Đơn giản chỉ cần gọi super.methodName() gọi phiên bản của siêu kiểu của bạn của phương pháp.

public class A extends B{ 
    @Override 
    public void foo(){ 
    System.out.println("yep"); 
    super.foo(); // Here you call the supertype's foo() 
    } 
} 

Ngoài ra, đây không phải là 'một phần' ghi đè phương pháp. Bạn hoàn toàn ghi đè nó, nhưng bạn chỉ sử dụng một số chức năng của cha mẹ.

Các vấn đề liên quan