publicclassAthlete{privateShoesshoes;publicAthlete(Shoesshoes){this.shoes=shoes;}publicstaticvoidmain(String[]args){Shoesshoes=newSneaker();Athleteathlete1=newAthlete(sho...
public class Athlete {
private Shoes shoes;
public Athlete(Shoes shoes){
this.shoes = shoes;
}
public static void main(String[ ] args) {
Shoes shoes = new Sneaker();
Athlete athlete1 = new Athlete(shoes);
System.out.println(shoes.stuff);//stuff is not initialized
shoes = new SandShoe();
Athlete athlete2 = new Athlete(shoes);
}
}
class Shoes{
public String stuff;
public String gender;
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender=gender;
}
public String getStuff() {
return stuff;
}
public void setStuff(String stuff) {
this.stuff=stuff;
}
}
class Sneaker extends Shoes{
public String stuff = "RubberSole";
public String getStuff() {
return stuff;
}
public void stuff(String stuff) {
this.stuff = stuff;
}
}
class SandShoe extends Shoes{
public String flagSole = "FlagSole";
public String getFlagSole() {
return flagSole;
}
public void setFlagSole(String flagSole) {
this.flagSole = flagSole;
}
}
代码中为什么一定要Shoes shoes = new Sneaker();而不是Sneaker shoes = new Sneaker();???
展开