마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

android developer 에서 abstract method들을 재정의할 때 (Base Adapter예시)

0 추천
학교에서 자바수업 수강 후 안드로이드를 독학하다 궁금한 점이 생겼습니다.

책을 보니 listview를 구현할 때 base adapter를 상속받아 어댑터를 생성하는데

android developer 문서를 보니 base adapter가 list adapter를 implement하고 list adapter는 adapter를

implement한다고 써있더라구요. base adapter<list adapter<adapter 이런 식으로

android developer 에서 adapter에 대한 설명을 보니 abstract method들이 여러개 존재하는데

listview를 쓰는 많은 기본 예제들이 getCount, getItem, getItemId, getView만을 오버라이딩해서 쓰는데 그럼에도 오류없이 돌아가더라구요. abtract함수는 상속받으면 오버라이딩해서 써야한다고 알고 있는데 왜 다른 isEmpty나 hashstableId같은 함수들이 재정의 되지 않았음에도 돌아가는지 궁금합니다.

혹 제가 developer문서를 잘못 읽은 건지도 궁금합니다ㅜ
안드로답답 (120 포인트) 님이 2019년 5월 19일 질문

1개의 답변

0 추천
BaseAdapter 는 abstract class 고

ListAdapter, Adapter 는 interface 이기 때문입니다~

 

interface 는 완전히 미완성된 아이이고, abstract class 는 일부 미완성된 아이입니다.

 

따라서, interface 를 implement 하셔야하고, interface 안에있는 모든 미완성된 method 들을 전부 구현해 주어야하구여

abstract 는 class 이기 때문에 extends 하셔야 하구요, 이 경우에는 abstract class 안에있는 abstract method 만 구현해 주시면 됩니다.

 

나머지는 오버라이딩을 따로 안했을 경우, abstract 에 구현된 메소드를 호출하니까, 따로 구현하실 필요가 없습니다~
안드로이드로우 (15,740 포인트) 님이 2019년 5월 20일 답변
...