易百教程

105、静态绑定和动态绑定有什么区别?

在静态绑定的情况下,对象的类型是在编译时确定的,而在动态绑定中,对象的类型是在运行时确定的。

静态绑定

class Dog {

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

    public static void main(String args[]) {
        Dog d1 = new Dog();
        d1.eat();
    }
}

动态绑定


class Animal {

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

class Dog extends Animal {

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

    public static void main(String args[]) {
        Animal a = new Dog();
        a.eat();
    }
}