Защо super реферира към обекта със който съм извикал метода а не към нещо от суперкласа.
public class Fragile_Base_Class_Main {
public static void main(String[] args) {
RandomArrayList randomArrayList = new RandomArrayList();
randomArrayList.add(12);
randomArrayList.add(15);
randomArrayList.add("gosho");
randomArrayList.add("pesho");
randomArrayList.add(4);
randomArrayList.add(3);
randomArrayList.add(7);
randomArrayList.add("dsa");
while (randomArrayList.size() > 0) {
System.out.println(randomArrayList.getRandomElement());
}
}
public class RandomArrayList extends ArrayList {
public Object getRandomElement() {
int rnd = (int) Math.round(Math.random() * (super.size() - 1));
Object temp = super.get(rnd);
super.remove(rnd);
return temp;
}
}
int rnd = (int) Math.round(Math.random() * (super.size() - 1)); в ето този ред. Това super.size() защо реферира към сайза на обекта със който съм викал метода? Не трябва ли със this.size() да реферираме към него а със super.едиКаквоСи към методи,полета и контруктори от superclass, но не към неща от subclass