Sadece bunu yanlış tasarlayabilirim ama 4 farklı türde hayvanım olduğunu söyleyebilirim. Bir kuşum, bir atım, bir farem ve bir balığım var. Hepsini bir hayvan alt sınıfı yapmaya çalıştım ama bu kötü bir tasarım ya da hataya eğilimlidir, fakat hayvandan bazı yöntemleri vardır, hepsinin sahip olmasını istiyorum ve hepsinin aynı yerlerden kullanılabilir olmasını istiyorum.Sadece belirli bir arabirimi uygulayan nesneleri kabul eden bir ArrayList oluşturmak mümkün mü?
Hayvana bir arabirim yaptım ve şimdi hepsinin bir arraylistine sahip olmak istiyorum, ama ArrayList çalışmıyor çünkü Hayvan bir sınıf değil.
Bu konuda bana yardımcı olabilecek herhangi bir kişi var mı, yoksa bunu tasarlamanın daha basit/kolay bir yolu var mı?
Benim animalHouse sınıf
import java.util.ArrayList;
public class AnimalHouse {
private ArrayList<? extends Animal> animals;
public AnimalHouse(Bird a, Bird b)
{
animals = new ArrayList();
animals.add(a);
animals.add(b);
}
}
Kuşum sınıf
public class Bird implements Animal {
@Override
public void run() {
System.out.println("run");
}
@Override
public void sit() {
System.out.println("sit");
}
}
ve benim arayüzü
public interface Animal {
public void run();
public void sit();
}
Bir Arabirim Türü Dizisi tamamen mümkündür. Lütfen kodunuzu gösterin. –
listesini "Liste" gibi oluşturabilirsiniz, ancak aldığınızda, alt sınıfların işlevlerini çağırabilmek için alt sınıflarına atamanız gerekir. –
"ArrayList çalışmıyor çünkü Hayvan bir sınıf değil" ifadesi yanlıştır. Başkalarının da istediği gibi, lütfen kodunuzu gönderin ve özellikle sorunun ne olduğunu (derleyici hatası, istisna, vb.) Ve nerede oluştuğunu (gönderdiğiniz kodda hangi satırı) bize bildirin. –