Express Router неопределенные параметры с router.use при разделении по файлам

Подключение вызова метода к телу метода называется привязкой. Как сказал Маулик, «Static binding использует информацию типа (класс в Java) для привязки, тогда как динамическое связывание использует Object для разрешения привязки». Итак, этот код:

public class Animal {
    void eat() {
        System.out.println("animal is eating...");
    }
}

class Dog extends Animal {

    public static void main(String args[]) {
        Animal a = new Dog();
        a.eat(); // prints >> dog is eating...
    }

    @Override
    void eat() {
        System.out.println("dog is eating...");
    }
}

Изменит результат: собака ест ... потому что использует ссылку на объект, чтобы найти, какой метод использовать. Если мы изменим приведенный выше код на это:

class Animal {
    static void eat() {
        System.out.println("animal is eating...");
    }
}

class Dog extends Animal {

    public static void main(String args[]) {

        Animal a = new Dog();
        a.eat(); // prints >> animal is eating...

    }

    static void eat() {
        System.out.println("dog is eating...");
    }
}

Это произведет: животное ест ... потому что это статический метод, поэтому он использует Type (в данном случае Animal), чтобы решить, статический метод для вызова. Помимо статических методов, частные и конечные методы используют один и тот же подход.

30
задан whitfin 11 March 2015 в 01:51
поделиться