將方法調用連接到方法體稱為綁定。
在java中有兩種類型的綁定:
- 靜態綁定(也稱為早期綁定)。
- 動態綁定(也稱為後期綁定)。
瞭解類型
下麵讓我們來瞭解實例的類型。
1. 變數有一個類型
每個變數都有一個類型,它可能是原始的和非原始的。
int data=30;
這裏的數據變數是一個int類型。
2. 引用有一個類型
class Dog {
    public static void main(String args[]) {
        Dog d1;// Here d1 is a type of Dog
    }
}
2. 對象有一個類型
對象是特定的java類的實例,但它也是其超類的實例。
class Animal {
}
class Dog extends Animal {
    public static void main(String args[]) {
        Dog d1 = new Dog();
    }
}
這裏d1是Dog類的一個實例,但它也是Animal的一個實例。
靜態綁定
當編譯時(由編譯器)確定對象的類型時,它被稱為靜態綁定。如果在類中有任何private,final或static方法,則有靜態綁定。
靜態綁定的示例
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();
    }
}
執行上面示例代碼輸出結果如下 -
dog is eating...
在上面的例子中,對象類型不能由編譯器決定,因為Dog的實例也是Animal的一個實例。編譯器不知道它的類型,只知道它的基類型。
						上一篇:
								Java多態
												下一篇:
								Java instanceof運算符
					
					