Java 如何创建类的实例并在子类中实现它?

Java 如何创建类的实例并在子类中实现它?,java,class,inheritance,instance,Java,Class,Inheritance,Instance,如何创建一个类的实例作为另一个类的属性?我相信这就是我需要做的: ClassA a1 = new ClassA(); // ClassA is the super class 如果我上面的代码是正确的,这就是我被卡住的地方。我如何在ClassA的子类中使用它,比如ClassB?所以,如果ClassA有“name”和“age”,ClassB有“tenant”,我需要做什么才能给tenant一个名字和年龄 如果类B扩展了类A,那么您可以自动访问类B的name和age元素,只要它们在类A中声明时不

如何创建一个类的实例作为另一个类的属性?我相信这就是我需要做的:

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

如果我上面的代码是正确的,这就是我被卡住的地方。我如何在ClassA的子类中使用它,比如ClassB?所以,如果ClassA有“name”和“age”,ClassB有“tenant”,我需要做什么才能给tenant一个名字和年龄

如果类B扩展了类A,那么您可以自动访问类B的name和age元素,只要它们在类A中声明时不是私有的


您只需执行
classBInstance.name=“bob”

类B继承自类A。因此,在类B的构造函数中,您必须使用super()调用超类的构造函数,然后当您想在子类中使用超类的属性时,您只需使用super,因此super.getAttribute()例如,您可以使用类和子类的思想,以及受保护字段的使用:

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;

    }
}

如果
ClassB扩展了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扩展了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
根据不同的变量是
受保护的
私有的
,还是
公共的
,有稍微不同的处理方法。我建议你多读一些关于可见性之类的东西


祝你好运。

你得到了四个答案,但没有投票或接受任何答案——为什么?这是直截了当的,但如果我的主要答案与A类和B类分开呢?所以我需要将ClassA的实例值和它自己的实例值一起提供给ClassB。你的意思是将ClassA对象转换成ClassB对象吗?如果main方法位于与ClassA和classb不同的类中,那么上面的代码就可以工作了谢谢,我想我已经有了它!