안드로이드 개발 질문/답변
(글 수 45,052)
안드로이드 공부하고 있는 학생입니다.
그래프 오픈 소스 보다가
소스가 막히는 부분이 있어서 자바 기본 문법인데 이해가 잘 되지 않더군요
=================================================
List<double[]> x = new ArrayList<double[]>();
=================================================
이 소스는 어떤 의미를 하는 걸가요? 자바책을 찾아보니 ArrayList 배열 선언하는 것은
ArrayList<double[]> x = new ArrayList<double[]>();
이렇게 되어있던데..
List<double[]>의 의미가 무엇일가요??
그리고
List<double[]> x = new ArrayList<double[]>(); 소스와
ArrayList<double[]> x = new ArrayList<double[]>(); 차이점은 먼가요?
2011.09.07 17:47:39
상위라고 생각하면 되지만 List는 클래스가 아니라 인터페이스이고, ArrayList는 List를 상속해서 오버라이딩한 것이죠.
List에는 List를 상속한 모든 클래스를 담을 수 있다는 점
ArrayList 클래스가 새롭게 정의된 함수나 변수는 List<double[]>에 담을 경우 사용할 수 없다는 점 정도 일거에요.
interface A{
void f();
}
class B implements A{
public void f(){}
public void ff(){}
}
public class main{
public static void main(String [] args){
A a = new B();
B b = new B();
a.f(); //가능
a.ff(); //불가능
b.f(); //가능
b.ff(); //가능
}
}




List 는 인터페이스고 ArrayList 는 List 를 추상화한 객체입니다.
List 를 추상화한 객체들이 여러가지인데
상황에 따라서 다르게 불러올 수 있습니다.
이럴때 인터페이스로 된 객체를 선언하고 상황에 따라 할당을 하면 좀 더 확장성 있는 코드가 만들어지죠
특별한 차이점까지는..저도 잘 모르겠네요 :(