所以我有这个课程:
public class parent {
private int id;
private int row;
public parent(int id,int row) {
this.id=id;
this.row=row
}
}
然后我有这个扩展父
的类public class son extends parent {
public son(int id,int row) {
super(id,son);
}
}
问题是如何为类son创建一个对象。我必须这样称呼它:
son x=new son(int id,int row);
我真的很困惑。
答案 0 :(得分:5)
是的,你现在就开始了!要绝对清楚,在调用构造函数时,您不会使用id
和row
的类型,您只需提供该类型的值。
所以这是错误的:
son x = new son(int 5, int 6); //Incorrect
这是正确的:
son x = new son(5, 6); //Correct
您还可以传递正确类型的变量,如下所示:
int id = 5;
int row = 6;
son x = new son(id, row);
另外,我刚注意到你写道:
public class parent {
private int id;
private id row;
//....
而不是
public class parent {
private int id;
private int row; //Note the change id --> int here
//....
如果这是一个错字,请不要担心。否则你可能会有一个概念上的误解。 id
不是一种类型,但int
是。row
。因此,我们无法将id
声明为int
,但我们可以将其声明为C
。与typedef
和朋友不同,您无法使用int
创建类型的同义词,因此您仍然坚持使用基本类型(boolean
,public class Parent {
private int id;
private int row;
public Parent(int id,int row) {
this.id=id;
this.row=row
}
}
public class Son extends Parent {
public Son(int id,int row) {
super(id,son);
}
}
public class ThisClassHasManyWordsInItAndItShouldBeFormattedLikeThis {
//.....
}
等等。)
由于您似乎是Java的新手,因此惯例是类具有Pronoun Case(每个单词的大写首字母)名称。因此,为您的类使用以下格式将是更好的风格:
Son x = new Son(5,6);
然后进行构建:
Parent
一旦您构建了Parent p = new Parent(4,5);
p
对象,就无法将Son
更改为p
。这是不可能的。 但是,您可以将Son
复制到新的public class Parent {
private int id;
private int row;
public Parent(int id,int row) {
this.id=id;
this.row=row
}
public int getId() {
return id;
}
public int getRow() {
return row;
}
}
public class Son extends Parent {
public Son(int id,int row) {
super(id,son);
}
public Son(Parent p) {
super(p.getId(), p.getRow());
}
}
中,然后您可以对这些类进行一些修改,以便更轻松地制作这些副本:
Parent p = new Parent(4,5);
Son s = new Son(p); //will have id of 4 and row of 5
现在我们可以创建一个Parent,并将复制到一个新的Son:
Son extends Parent
值得注意的是,虽然这一切对于学习课程扩展如何运作都很好,但你并没有真正正确地使用它。通过说Son
,您说Parent
是 public class Person {
private Person mother;
private Person father;
public Person(Person mother, Person father) {
this.mother = mother;
this.father = father;
}
}
的一种类型,这在小学模型中是不正确的。一个家族。建模家庭的更好方法可能是:
Man
如果您仍在寻找包含类扩展的方法,那么Woman
和Person
作为类Man
的扩展名有意义,因为Person
是一种 public class Person {
private Man father;
private Woman mother;
public Person(Man father, Woman mother) {
this.father = father;
this.mother = mother;
}
}
public class Man extends Person {
public Man(Man father, Woman mother) {
super(father, mother);
}
}
public class Woman extends Person {
public Woman(Man father, Woman mother) {
super(father, mother);
}
}
。 (即所有人都是人,而不是所有人都是男人)。
document.getElementById('myButton').onclick = function() {
this.classList.toggle('active');
}