다형성을 연구하고 아래와 같이 동적 메서드 바인딩을 수행 할 수 있음을 이해합니다.Collection 인터페이스를 사용하여 ArrayList 객체를 만드는 다형성의 이점은 무엇입니까?
클래스 Animal이 추상 클래스라고 가정합니다.
public class AnimalReference
{
public static void main(String args[])
Animal ref // set up var for an Animal
Cow aCow = new Cow("Bossy"); // makes specific objects
Dog aDog = new Dog("Rover");
// now reference each as an Animal
ref = aCow; ref.speak();
ref = aDog; ref.speak();
}
내가 좋아하는 ArrayList의 인스턴스 생성하는 데 사용 :
ArrayList myList = new ArrayList();
을하지만 보통 나는 사람들이 작성하는 것이 생각 :
이Collection myList = new ArrayList();
그래서 내 혼란이 컬렉션으로 선언의 이익은 무엇인가 ? 또한 "myList"앞에 "Collection"(추상 클래스가 아닌 인터페이스)을 가질 수 있는지도 몰랐습니다.
그것은 좋은 방법이 아닌 이유는 대답 :
ArrayList myList = new ArrayList();
내가 Collection 인터페이스와 ArrayList를 자바 문서뿐만 아니라 온라인 자습서를 읽을 수는 있지만 아직 정말 명확하지 .. 사람이 나에게 몇 가지 설명을 줄 수 있을까요?
왜 이것이 우수 사례인지 자세히 설명해주십시오. –
@Jacob Tomaw _declaration_ 변수에 필요한 기능을 명시 적으로 표시하기 때문에 좋은 방법입니다. _initialization_에서'ArrayList'를 선택한다는 것은 무의미한 것입니다 (좋은 기본 선택 임에도 불구하고). 그것이 '콜렉션'이라는 선언은 당신과 미래의 코더에게 당신이 관심을 갖는 계약을 정확히 알려줍니다. –
당신은 모든 사람들이 그것이 좋은 습관이라고 알고 있다고 가정하지 않고 대답에 그것을 포함시킴으로써 답을 극적으로 향상시킬 수 있습니다. 나는이 질문을 읽는 대부분의 사람들이 당신이나 내가 가진 경험이 없을 것이라고 생각합니다. –