📅  最后修改于: 2020-09-24 03:25:53             🧑  作者: Mango
将方法调用连接到方法主体称为绑定。
绑定有两种类型
让我们了解实例的类型。
每个变量都有一个类型,它可以是原始的也可以是非原始的。
"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的一个实例。
当在编译时(由编译器)确定对象的类型时,称为静态绑定。
如果类中有任何私有,最终或静态方法,则存在静态绑定。
"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的实例也是Animal的实例,因此编译器不知道其类型,只知道其基本类型。