2016-01-18 2 views
-3

этот человек сделал: "protected GoogleApiClient mGoogleApiClient;" в следующем коде:Почему мы создали экземпляр абстрактного класса, когда нам не разрешено?

Android Maps Get Longitude and Latitude

но GoogleApiClient является абстрактным классом.

Как это может быть создан экземпляр?

Абстрактный класс, как указано здесь: https://developers.google.com/android/reference/com/google/android/gms/common/api/GoogleApiClient

should'nt это продолжается как абстрактные классы могут быть расширены только?

+0

Абстрактный класс не может быть создан непосредственно. Пользователь не пытается это сделать, поэтому проблем нет. – Kuffs

+0

Заявление в этом сообщении неверно. – DanielV

ответ

2

Неупометризовано напрямую. Если вы посмотрите на код в ссылке, которую вы предоставляете, это как из GoogleApiClient получают экземпляр подкласса:

mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .addConnectionCallbacks(this) 
      .addOnConnectionFailedListener(this) 
      .addApi(LocationServices.API) 
      .build(); 

Мы не используем new ключевое слово здесь, но скорее build метод из статический класс Builder