java的静态绑定,Java静态绑定和动态绑定

本文详细介绍了Java中的静态绑定(早期绑定)和动态绑定(后期绑定)的概念。静态绑定在编译时确定,如private、final、static方法;而动态绑定则在运行时根据对象的实际类型决定。通过示例代码展示了静态绑定如何在编译时确定方法调用,以及动态绑定如何在运行时根据对象的实例类型进行方法调用。
摘要由CSDN通过智能技术生成

Java静态绑定和动态绑定

1 什么静态绑定和动态绑定

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

绑定有两种类型:

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

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

2 了解不同的类型

让我们了解不同的类型。

2.1 变量类型

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

int data=30;

这里的data变量是int类型。

2.2 引用类型

class Dog{

public static void main(String args[]){

Dog d1;//d1是Dog引用类型

}

}

2.3 对象类型

对象是特定Java类的实例,但它也是其父类的实例。

class Animal{}

class Dog extends Animal{

public static void main(String args[]){

Dog d1=new Dog();

}

}

此处d1是Dog类的一个实例,但它也是Animal的一个实例。

3 静态绑定

当在编译时(由编译器)确定对象的类型时,称为静态绑定。

如果类中有任何private,final或static方法,则存在静态绑定。

3.1 静态绑定的示例

/**

* 一点教程网 - http://www.yiidian.com

*/

//静态绑定的示例

class Dog{

private void eat(){

System.out.println("狗在吃东西...");

}

public static void main(String args[]){

Dog d1=new Dog();

d1.eat();

}

}

输出结果为:

狗在吃东西...

4 动态绑定

在运行时确定对象的类型时,称为动态绑定。

4.1 动态绑定的示例

/**

* 一点教程网 - http://www.yiidian.com

*/

//动态绑定的示例

class Animal{

void eat(){

System.out.println("动物在吃东西...");

}

}

class Dog extends Animal{

void eat(){

System.out.println("狗在吃东西...");

}

public static void main(String args[]){

Animal a=new Dog();

a.eat();

}

}

输出结果为:

狗在吃东西...

在上面的示例中,编译器无法确定对象类型,因为Dog的实例也是Animal的实例,因此编译器不知道其类型,只知道其基本类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值