我們假設我得到一個字符串輸入,可以是「0」,「棕色」,「0.5米」或‘50釐米’。然後我創建dog
類的狗實例,即pet
類的孩子。但是,pet
類是超類的horse
,pig
和bird
。如何比較子類之間的變量來創建它。 Java的
public class Pet {
public final String[] attribs;
public void sound() {
System.out.print(attribs[4]);
}
}
public class Dog extends pet {
public final String[] attribs = {"0","brown",".5m","50cm","wow"};
}
public class Bird extends pet {
public final String[] attribs = {"1","green",".3m","30cm","hola"};
}
public class Pig extends pet {
public final String[] attribs = {"2","pink",".7m","75cm","oing"};
}
public class Horse extends pet {
public final String[] attribs = {"3","black","1.5m","150cm","burf"};
}
public class app {
public static void main(String[] arg) {
Scanner inputs = new Scanner(System.in);
String AttribInserted;
Pet FindedPet;
System.out.println("type an attribute of your pet")
AttribInserted = inputs.nextLine();
for(int i = 0; i < 4;i++)
if (l.equals(dog.atbts[i])) FindedPet = new dog();
for(int i = 0; i < 4;i++)
if (l.equals(bird.atbts[i])) FindedPet = new bird();
for(int i = 0; i < 4;i++)
if (l.equals(horse.atbts[i])) FindedPet = new horse();
for(int i = 0; i < 4;i++)
if (l.equals(pig.atbts[i])) FindedPet = new pig();
System.out.print("Your pet says:");
FindedPet.sound();
}
}
好吧,如果我增加寵物的個子類,我添加屬性給大家,是有辦法的所有子類的所有變量之間進行比較?例如: l.equals(subclass.atbts[i])
而大多數,如果我想使用一個更復雜的項目。 subclass.atbts[i][j][k]
請遵照Java命名約定。 'l'是文件特別警告不要使用的標識符。類型名稱應以大寫字母開頭。你有沒有注意到'dog.atbts'等等,不會編譯?另外,你完全忽視了在你的if和loop體上放置大括號('{','}')。 –
@LewBloch *'l'是文檔專門警告不要使用的標識符。*您是否有源代碼? – shmosel
我在梯子上,我從一種沒有約定的語言開始,我沒有上課,我從任何需要的地方閱讀,我不知道Java命名約定。此外,這個問題不是我的項目的引用,它只是一個簡單而通用的例子,易於理解和更有用。我從來沒有使用這個代碼,我沒有編譯它。 –