2013-06-07 38 views
6

Tôi có một lớp bậc trên và tôi muốn sử dụng một biến nằm bên trong lớp con này vào lớp con của tôi. Làm thế nào điều này có thể có thể?làm thế nào để sử dụng một biến từ một superclass đến một lớp con?

+0

Nếu nó được khai báo là 'được bảo vệ', nó sẽ có thể truy cập được. – fge

+0

Đọc [this] (http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html) và [this] (http://docs.oracle.com/javase/tutorial/java/IandI /subclasses.html) từ các đường mòn Java. – Brian

Trả lời

8

Chỉ cần tạo trường protected, có nghĩa là nó sẽ hiển thị cho tất cả các lớp dẫn xuất.

0

Nếu nó được công khai hoặc được bảo vệ, nó sẽ được hiển thị trong tất cả các phương pháp của lớp con. Bạn có thể xem nó như là một global variable trong phân lớp.

3

Tôi có một lớp bậc trên và tôi muốn sử dụng biến nằm trong lớp con này vào lớp con của tôi. Làm thế nào điều này có thể có thể?

Nếu biến của bạn được khai báo là protected hoặc public (hoặc) biến của bạn có default đặc quyền truy cập (trong trường hợp này bạn không chỉ định với bất kỳ từ khóa) và họ đang ở trong cùng một gói (-> Bạn có thể truy cập . nó trong lớp con trực tiếp bạn có thể sử dụng từ khóa this nếu bạn là cụ thể

Ví dụ:..

public class A{ 
     protected int field=1; 
    } 
    public class B extends A{ 
     public B(){ 
      System.out.println(this.field); 
     } 
     public static void main(String args[]){ 
      new B(); 
     } 
    } 

Xin lưu ý rằng biến quan trọng nhất là không thể Nếu bạn có một wit biến h cùng một tên như trong lớp siêu sau đó bạn đang trong số may mắn để trực tiếp truy cập nó. Sau đó, bạn có thể sử dụng từ khóa super.

 public class A{ 
      protected int field=1; 
     } 
     public class B extends A{ 
      protected int field=3; 
      public B(){ 
       System.out.println(this.field); 
       System.out.println(super.field); 
      } 
     public static void main(String args[]){ 
      new B(); 
     } 
     } 
+2

Có thêm một khả năng cho 'super.field':' ((A) this) .field'. –

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