如何创建一个类的实例以用作另一个类中的属性?我相信这就是我需要做的事情:
ClassA a1 = new ClassA(); // ClassA is the super class
如果我的上述代码甚至是正确的,那么我就会陷入困境。我如何在ClassA的子类中实际使用它,比如说ClassB?因此,如果ClassA有' name'和'年龄'而且ClassB有“租户”和#39;为了给租户一个名字和年龄,我需要做些什么?
答案 0 :(得分:0)
如果B类扩展了A类,那么你可以自动访问B类的名称和年龄元素,只要它们在A类中声明时不是私有的
您可以classBInstance.name = "bob";
答案 1 :(得分:0)
答案 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 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
。< / 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
根据各种变量protected
,private
或public
的不同,这种方式略有不同。我建议您阅读有关可见性的更多内容。
祝你好运。