2017-07-07 88 views
-1

我將如何創建一個類的實例以用作另一個類中的屬性?我相信這是我需要做的:如何創建類的實例並在子類中實現它?

ClassA a1 = new ClassA(); // ClassA is the super class 

這是我卡住,如果我上面的代碼是正確的。我如何在ClassA的子類中實際使用它,比如說ClassB?因此,如果ClassA具有「名稱」和「年齡」,而ClassB具有「承租人」,那麼爲了給租戶姓名和年齡,我需要做些什麼?

+2

https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html – GriffeyDog

+0

你已經得到了四個答案,沒有投票或接受任何 - 爲什麼? –

回答

0

如果ClassB extends ClassA然後ClassB將繼承所有的ClassA屬性。下面是一個簡單的例子:

public class ClassA { 

    private String name; 
    private int age; 

    public ClassA(String name, int age) 
      this.name = name; 
      this.age = age; 
    } 

    public String getName() { 
      return name; 
    } 

    public int ageGetAge() { 
      return age; 
    } 
} 

public class ClassB extends ClassA { 

    private String tenant; 

    public ClassB(String name, int age, String tenant) { 
      super(name, age); 
      this.tenant = tenant; 
    } 

    public String getTenant() { 
      return tenant; 
    } 
} 

對於這些類,如果你創建在你的程序的某些部分ClassB對象,你就可以調用的方法getName()getAge()因爲ClassB extends ClassA

public static void main(String[] args) { 
    ClassB object = new ClassB("me", 0, "you"); 
    System.out.println(object.getName()); 
    System.out.println(object.getAge() + ""); 
    System.out.println(object.getTenant()); 
} 

這段代碼將輸出以下內容:

me 
0 
you 

還有的要對這個取決於多種變量是否protectedprivate,或者public方式略有不同。我會建議閱讀更多關於知名度等。

祝你好運。

+0

這很簡單,但是如果我的main與ClassA和ClassB是分開的呢?所以我需要給ClassB提供來自ClassA的實例值以及它自己的值。 – MNewbie

+0

你的意思是把一個ClassA對象變成一個ClassB對象?如果主要方法在ClassA和ClassB的單獨類中,上面的代碼將起作用 –

+0

謝謝,我想我已經擁有它了! – MNewbie

0

如果B類延長A級,那麼你就可以自動只要在一個類中聲明時

你可以做classBInstance.name = "bob";

0

以及他們是不是私人的訪問B類的名字和年齡元素B類繼承自A類,因此在B類的構造函數中,您使用Super()調用超類的構造函數,然後當您想要從子類中的超類中使用屬​​性時,只需使用super,那麼super .getAttribute()例如

0

您可以使用類和subclasse的想法s,並且使用受保護字段:

public class ClassA { 

    protected String name; 
    protected int age; 

    public ClassA(String name, int age) { 
     this.name = name; 
     this.age = age; 
    } 
} 

public class ClassB extends ClassA { 

    private String tenant; 


    public ClassB(String name, int age, String tenant) { 
     super(name, age); 
     this.tenant = tenant; 
    } 

    public static void main(String[] args) { 
     ClassB b = new ClassB("Carol", 23, "some tenant"); 
     String tenant = b.tenant; 
     int age = b.age; 
     String name = b.name; 

    } 
}