Почему балансировщики нагрузки GCP открывают порты 5432, 5900, 5901?

Полиморфизм:

Это концепция объектно-ориентированного программирования. Способность разных объектов реагировать каждый по-своему на идентичные сообщения называется полиморфизмом.

Полиморфизм вытекает из того, что каждый класс живет в своем собственном пространстве имен. Имена, назначенные в определении класса, не конфликтуют с именами, назначенными вне его. Это верно как для переменных экземпляра в структуре данных объекта, так и для методов объекта:

  • Так же, как поля структуры C находятся в защищенном пространстве имен, так же как и переменные экземпляра объекта.
  • Имена методов также защищены. В отличие от имен функций C, имена методов не являются глобальными символами. Имя метода в одном классе не может конфликтовать с именами методов в других классах; два очень разных класса могут реализовать одинаково названные методы.

Имена методов являются частью интерфейса объекта. Когда сообщение отправляется с запросом на то, что объект что-то делает, сообщение называет метод, который должен выполнять объект. Поскольку разные объекты могут иметь методы с одним и тем же именем, смысл сообщения следует понимать относительно конкретного объекта, который получает сообщение. Одно и то же сообщение, отправленное на два разных объекта, может вызывать два разных метода.

Основное преимущество полиморфизма заключается в том, что он упрощает интерфейс программирования. Это позволяет устанавливать соглашения, которые могут быть повторно использованы в классе после класса. Вместо того, чтобы изобретать новое имя для каждой новой функции, которую вы добавляете в программу, одни и те же имена можно использовать повторно.

Примеры:

Пример-1: Вот простой пример, написанный на Python 2.x.

class Animal:
    def __init__(self, name):    # Constructor of the class
        self.name = name
    def talk(self):              # Abstract method, defined by convention only
        raise NotImplementedError("Subclass must implement abstract method")

class Cat(Animal):
    def talk(self):
        return 'Meow!'

class Dog(Animal):
    def talk(self):
        return 'Woof! Woof!'

animals = [Cat('Missy'),
           Dog('Lassie')]

for animal in animals:
    print animal.name + ': ' + animal.talk()

Пример-2: Полиморфизм реализован на Java с использованием перегрузки методов и переопределения методов.

Рассмотрим пример автомобиля для обсуждения полиморфизма. Возьмите любой бренд, такой как Ford, Honda, Toyota, BMW, Benz и т. Д. Все это типа Car.

Но у каждого из них свои собственные расширенные функции и более совершенные технологии, связанные с их перемещением.

Теперь давайте создадим базовый тип Car

Car.java

public class Car {

    int price;
    String name;
    String color;

    public void move(){
    System.out.println("Basic Car move");
    }

}

Давайте воспользуемся примером Ford Car.

Ford расширяет тип Автомобиль наследует все его элементы (свойства и методы).

Ford.java

public class Ford extends Car{
  public void move(){
    System.out.println("Moving with V engine");
  }
}

Вышеупомянутый класс Ford расширяет класс Car, а также реализует метод move (). Несмотря на то, что метод перемещения уже доступен Форду через Наследование, Ford по-прежнему реализовал метод по-своему. Это называется переопределением методов.

Honda.java

public class Honda extends Car{
  public void move(){
    System.out.println("Move with i-VTEC engine");
  }
}

Как и Ford, Honda также расширяет тип автомобиля и применяет метод перемещения по-своему.

Переопределение метода является важной особенностью, позволяющей полиморфизм. Используя метод overriding, Sub-типы могут изменить способ работы методов, доступных через наследование.

PolymorphismExample.java

public class PolymorphismExample {
  public static void main(String[] args) {
    Car car = new Car();
    Car f = new Ford();
    Car h = new Honda();

    car.move();
    f.move();
    h.move();

  }
}

Результат вывода полиморфизма:

В основном методе класса PolymorphismExample я создал три объекта - автомобиль, Ford и Honda. Все три объекта относятся к типу автомобиля.

Обратите внимание на важный момент здесь, что тип суперкласса может относиться к типу объекта класса Sub, но наоборот. Причина в том, что все члены суперкласса доступны для подкласса с использованием наследования и во время компиляции компилятор пытается оценить, использует ли ссылочный тип метод, к которому он пытается получить доступ.

Итак, для ссылок car, f и h в примере PolymorphismExample метод перемещения существует из типа Car. Таким образом, компилятор передает процесс компиляции без каких-либо проблем.

Но когда дело доходит до выполнения времени выполнения, виртуальная машина вызывает методы для объектов, которые являются подтипами. Таким образом, метод move () вызывается из их соответствующих реализаций.

Итак, все объекты имеют тип Car, но во время выполнения выполнение зависит от объекта, на котором происходит вызов. Это называется полиморфизмом.

0
задан K. Takada 5 March 2019 в 07:42
поделиться

1 ответ

должны быть открыты другие порты по умолчанию.

В настоящее время политика Google заключается в том, чтобы оставить открытыми некоторые порты lbs по умолчанию.

Вы можете найти больше об этом в этом посте: https://devops.stackexchange.com/questions/833/open-ports-on-google-cloud-load-balancer

0
ответ дан night-gold 5 March 2019 в 07:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: