将方法调用连接到方法体称为绑定。
在java中有两种类型的绑定:
下面让我们来了解实例的类型。
每个变量都有一个类型,它可能是原始的和非原始的。
int data=30;
这里的数据变量是一个int
类型。
class dog {
public static void main(string args[]) {
dog d1;// here d1 is a type of dog
}
}
对象是特定的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
的一个实例。编译器不知道它的类型,只知道它的基类型。