猿教程 Logo

静态绑定和动态绑定

将方法调用连接到方法体称为绑定。

有两种类型的绑定

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

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


了解类型

让我们来了解实例的类型。

1)变量有一个类型

每个变量都有一个类型,它可能是原始的和非原始的。

相关实例:

int data=30;

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

2)引用有一个类型

相关实例:

class Dog{
 public static void main(String args[]){
  Dog d1;//这里d1是Dog类型
 }
}

3)对象有一个类型

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

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


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Java/static-binding-and-dynamic-binding.html