Получение одного символа из строки

Из Javarevisited blog post :

Вот несколько важных различий между статическим и динамическим связыванием:

  1. Статическое связывание в Java возникает во время компиляции, тогда как динамическое связывание происходит во время выполнения.
  2. private, final и static методы и переменные используют статическое связывание и связаны с компилятором, тогда как виртуальные методы связаны во время выполнения на основе объекта времени выполнения.
  3. Статическая привязка использует Type (class в Java) информацию для привязки, тогда как динамическое связывание использует объект для разрешения привязки.
  4. Перегруженные методы связаны с использованием статического связывания, тогда как переопределенные методы связаны с использованием динамического связывания во время выполнения.

Вот пример, который поможет вам понять как статическую, так и динамическую привязку в Java.

Пример статической привязки в Java

public class StaticBindingTest {  
    public static void main(String args[]) {
        Collection c = new HashSet();
        StaticBindingTest et = new StaticBindingTest();
        et.sort(c);
    }
    //overloaded method takes Collection argument
    public Collection sort(Collection c) {
        System.out.println("Inside Collection sort method");
        return c;
    }
    //another overloaded method which takes HashSet argument which is sub class
    public Collection sort(HashSet hs) {
        System.out.println("Inside HashSet sort method");
        return hs;
    }
}

Вывод: метод сортировки внутри коллекции

Пример динамического связывания в Java

public class DynamicBindingTest {   
    public static void main(String args[]) {
        Vehicle vehicle = new Car(); //here Type is vehicle but object will be Car
        vehicle.start(); //Car's start called because start() is overridden method
    }
}

class Vehicle {
    public void start() {
        System.out.println("Inside start method of Vehicle");
    }
}

class Car extends Vehicle {
    @Override
    public void start() {
        System.out.println("Inside start method of Car");
    }
}

Выход: метод внутреннего запуска автомобиля

blockquote>

30
задан Shepmaster 13 June 2015 в 00:19
поделиться