所以我有這個類:如何從一個子類中的Java
,然後我也
public class son extends parent {
public son(int id,int row) {
super(id,son);
}
}
的問題是我如何創建該類延伸父對象類班子。我必須這樣稱呼它:
son x=new son(int id,int row);
我真的很困惑。
所以我有這個類:如何從一個子類中的Java
,然後我也
public class son extends parent {
public son(int id,int row) {
super(id,son);
}
}
的問題是我如何創建該類延伸父對象類班子。我必須這樣稱呼它:
son x=new son(int id,int row);
我真的很困惑。
是的,你只是在現場!要說得很清楚,在調用構造函數時,您不會使用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
等)。
因爲你看起來你是Java的新手,所以這個約定對於類有代詞情況(首字母大寫的第一個字母)的名字。因此,這將是更好的風格來使用你的類以下格式:
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 {
//.....
}
然後使建設:
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
值得一提的是,雖然這一切都很好,學習類擴展是如何工作的,你不實際使用我很正確。通過說,你是說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);
}
}
是的,你可以調用它的方式..或者你可以使用父母的引用來引用子類的實例 – TheLostMind
我真的不喜歡下殼類命名。 – OPK
將類型排除在外,否則您的語法應該起作用。兒子x =新兒子(id,row); – nicomp