Это, наверное, немой вопрос, но мне нужно знать. У меня есть интерфейс, какПовышение и понижение Java по интерфейсам
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBAsync;
public interface AsyncClient extends AmazonDynamoDBAsync{
}
И у меня есть ClientCreator класс, который имеет метод
import com.company.clients.AsyncClient;
public class ClientCreator {
public static AsyncClient getAsyncClient() throws FileNotFoundException, IllegalArgumentException, IOException{
AmazonDynamoDBAsync client = new AmazonDynamoDBAsyncClient(getCredentials());
client.setRegion(getRegion());
return (AsyncClient)client;
}
.
.
.
Здесь AmazonDynamoDBAsyncClient реализует AmazonDynamoDBAsync и AsyncClient расширяет AmazonDynamoDBAsync, но этот код не будет работы и выбросы
com.amazonaws.services.dynamodbv2.AmazonDynamoDBAsyncClient не может быть приведение к com.company.clients.AsyncClient
но почему?
Выполняет ли 'AmazonDynamoDBAsyncClient'' AsyncClient'? – cHao
Нет, это не так, и это невозможно. Но он реализует AmazonDynamoDBAsync, а AsyncClient расширяет его. – ufucuk
Итак, если «Пудель» реализует «Животное», а «Кошка» расширяет «Животное», вы в основном спрашиваете: «Как я отношусь к« Пуле »как к« Кошке »? – cHao