个性化阅读
专注于IT技术分析

Java静态绑定和动态绑定

连接一个方法调用的方法体被称为绑定。

有两种类型的绑定

  1. 静态绑定(也称为早期绑定)。
  2. 动态绑定(也称为后期绑定)。

理解类型

让我们理解类型的实例。

1)变量类型

每个变量都有一个类型,它可能是原始,销售。

int data=30;

这里的数据变量是一个int类型。

2)引用类型

class Dog{
 public static void main(String args[]){
  Dog d1;//Here d1 is a type of Dog
 }
}

3)有一个类型的对象

对象是特定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();
 }
}
Output:dog is eating...

在上面的例子中,编译器不能确定对象类型,因为Dog的实例也是Animal的实例。所以编译器不知道它的类型,只知道它的基类型。

赞(0)
未经允许不得转载:srcmini » Java静态绑定和动态绑定

评论 抢沙发

评论前必须登录!