Я недавно просматривал андроид документации SurfaceView и я обнаружил, что для получения фактической поверхности вы должны сделать следующее:Как именно абстрактный метод возвращает тип желания без переопределения?
SurfaceView.getHolder().getSurface()
документация для держателя поверхности здесь: https://developer.android.com/reference/android/view/SurfaceHolder.html
сейчас SurfaceHolder возвращается из getHolder(), который затем вы можете вызвать getSurface() на этом держателе, чтобы получить поверхность. Теперь, если вы проверите метод getSurface(), вы увидите, что это абстрактный метод. Я думал, что абстрактный метод предназначен для переопределения, а затем он может вернуть тип желания.
Однако здесь приведена ссылка на интерфейс, который является SurfaceHolder, а затем вы вызываете getSurface(), который является абстрактным методом, который означает, что нет смысла, когда метод переопределяется. Так как именно код что проверка и возврат соответствующей поверхности вызывается из абстрактного метода?
О, ладно, я понял это сейчас, но то, что все еще касается меня, - это то, что именно является абстрактной базой, с которой реализуется surfaceHolder? Обычно, когда android расширяет интерфейс, он обычно сообщает вам в документации. Например, https://developer.android.com/reference/android/view/View.html. Поскольку вы видите, что представление реализует множественный интерфейс, оно является абстрактным. Поэтому я могу понять, рассматривается ли представление как интерфейс. – JustCurious
@ JustCurious SurfaceHolder - это базовый интерфейс. Конкретная реализация, возвращаемая вам, вероятно, является некоторой внутренней непубличной вещью, которая знает. Но дело в том, что это не имеет значения для вас. Вам не нужно точно знать, что вам возвращается. Вам нужно только знать, что он реализует SurfaceHolder или что-то еще. Если вы действительно хотите узнать только, чтобы удовлетворить ваше внимание, вы можете использовать отражение для печати имени и иерархии классов, см. Https://docs.oracle.com/javase/tutorial/reflect/. –