Java面向對象(OOP)概念
Java面向對象(OOP)概念
Java命名約定
Java對象和類
Java構造器(構造方法)
Java static關鍵字
Java this關鍵字
Java繼承
Java聚合
Java方法重載
Java方法重寫
Java super關鍵字
Java實例初始化程序塊
Java final關鍵字
Java多態
Java靜態綁定和動態綁定
Java instanceof運算符
Java抽象類
Java接口
Java抽象類和接口的區別
Java包
Java訪問修飾符
Java封裝
Java Object類
Java對象克隆
Java數組
Java包裝類
Java按值調用和引用調用
Java strictfp關鍵字
Java命令行參數
對象和類之間的區別
java中方法重載和方法重寫的區別
Java靜態綁定和動態綁定
將方法調用連接到方法體稱爲綁定。
在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
的一個實例。編譯器不知道它的類型,只知道它的基類型。