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

时间:2017-07-07 16:03:56

标签: java class inheritance instance

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

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

如果我的上述代码甚至是正确的,那么我就会陷入困境。我如何在ClassA的子类中实际使用它,比如说ClassB?因此,如果ClassA有' name'和'年龄'而且ClassB有“租户”和#39;为了给租户一个名字和年龄,我需要做些什么?

4 个答案:

答案 0 :(得分:0)

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

您可以classBInstance.name = "bob";

答案 1 :(得分:0)

B类继承自A类。所以在你的B类构造函数中,你使用Super()调用超类的构造函数然后当你想要使用子类中超类的属性时你会使用它super,所以super.getAttribute()例如

答案 2 :(得分:0)

您可以使用类和子类的概念,以及受保护字段的使用:

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;

    }
}

答案 3 :(得分:0)

如果ClassB extends ClassAClassB将继承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。< / p>

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

根据各种变量protectedprivatepublic的不同,这种方式略有不同。我建议您阅读有关可见性的更多内容。

祝你好运。