將方法調用連接到方法體稱為綁定。
在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運算符