この行でコンパイル エラーが発生する理由 String s=data.get(idx);
更新:型の不一致が発生します: E から文字列に変換できません
    public class Parent<E> {
        ArrayList<E> data=new ArrayList<E>();
        public void add(E d){
            data.add(d);
        }
        public List<E> getData(){
            return data;
        }
    }
    public class Child<E> extends Parent<E>{
        public void appendData(E newItem){
            super.add(newItem);
        }
        public void displayData(int idx){
            List<E> data=this.getData();
            **String s=data.get(idx);**//I get compilation error in this line
            System.out.println(s);
        }
        public static void main(String[] args) {
            Child<String> c=new Child<String>();
            c.appendData("Data1");
            c.appendData("Data2");
            c.displayData(1);
        }
    }
ソリューション更新クラス:
public class Child<S> extends Parent<String>{
public void appendData(String newItem){
    super.add(newItem);
}
public void displayData(int idx){
    List<String> data=this.getData();
    String s=data.get(idx);
    System.out.println(s);
}
public static void main(String[] args) {
    Child c=new Child();
    c.appendData("Data1");
    c.appendData("Data2");
    c.displayData(1);
}
}