我有3节课。这些类是Class1,Parent和Child。我在弄清楚如何编写我的Child类所需的构造函数时遇到了一些麻烦。
public Class1
{
private String firstName;
private String lastName;
public Class1()
{
firstName="";
lastName="";
}
public Class1(String firstName, String lastName)
{
this.firstName=firstName;
this.lastName=lastName;
}
//Methods and stuff
}
public Parent
{
private Class1 class1;
private double number;
public Parent();
{
class1=new Class1();
number=0;
}
public Parent(Class1 c, double n)
{
Class1=c;
number=n;
}
//Methods and stuff
}
public Child extends Parent
{
private String string;
private Boolean boolean;
public Child(Class1 class1, double n, String s, Boolean b)
{
//Don't know how to get the Class1 part to work
//Don't know how to get the double to work
string=s;
boolean=b;
//Methods and stuff
}
我不知道如何编写代码,以便我可以让我的构造函数接受这样的参数:
new Child(new Class1("String", "String"), 10, "String", true);
我希望这有助于澄清我的问题。
答案 0 :(得分:1)
将Child
构造函数创建为
public Child(Class1 objClass1, double number, string str, boolean bool){
super(objClass1,number);
this.str=str;
this.bool=bool;
}
将Parent
构造函数创建为
public Parent(Class1 objClass1, double number){
this.objClass1=objClass1;
this.number=number;
}
您可以将子构造函数称为
Child objChild=new Child(new Class1(str1,str2),number,str,bool);
答案 1 :(得分:0)
我不打算给你代码,因为你没有给我们足够的信息,但我们假设你有类似的类结构。
public class Parent
{
private String field;
public Parent(String field) {
this.field = field;
}
}
public class Child extends Parent {
private String field;
public Child(String field)
{
this.field = field;
}
}
您可以做的是在Child
类中指定一个构造函数,该构造函数将继承链中的变量传递给Parent
类:
public Child(String field, String parentField)
{
super(parentField); // Calls the parent class.
this(field);
}
那么你在那里所做的就是将parentField
传递给Parent
类,并调用现有的构造函数来接受一个String
参数。
将此原则应用于您的代码,您将在几分钟内得到它。