2017-07-07 129 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; 

    } 
}