所谓绑定就是在对象引用与对象实例之间建立联系。分为静态绑定和动态绑定。静态绑定又叫前期绑定,是在编译期建立的联系;动态绑定又叫后期绑定,是在运行期建立的联系。
1.静态绑定
性能较好,可以提高代码的运行速度。java中属于静态绑定的有以下一些内容:
(1)类属性
(2)构造方法
(3)声明为static的静态方法
(4)声明为final的方法,将其另列为一个项目,如下声明为private的方法。
(5)使用关键字super调用的方法,包括super()。
public class Auto {
public String name = "an automobile";
public void engine(){
System.out.println("a poor engine");
}
public final void price(){
System.out.println("This is a budget machine.");
}
public static void run(){
System.out.println("a big slow");
}
public void fun(){
System.out.println("Driving fun");
}
}
public class Car extends Auto {
public String name = "a nice car";
public void engine(){
System.out.println("a nice engine");
}
public static void run(){
System.out.println("fast");
}
public void fun(){
super.engine();
}
public static void main(String[] args) {
Auto auto = new Car();
System.out.println(auto.name);//类属性
auto.price();//父类final方法
auto.run();//父类静态方法
auto.fun();//super关键字
}
}
2.动态绑定
提高了程序设计的灵活度,降低了耦合性,但会减慢运行速度。
public class Food {
public void taste(){
System.out.println("it is good");
}
public void smell(){
System.out.println("no bad");
}
public void feed(){
System.out.println("it is good");
}
}
public class Noodles extends Food {
public void taste(){
System.out.println("it is delicious");
}
public void smell(){
System.out.println("Smell sweet");
}
public void feed(){
System.out.println("it is nutritious");
}
public static void main(String[] args) {
Food food = new Noodles();
food.taste();
food.smell();
food.feed();
}
}