一.
定义:
1.方法绑定:一个方法被调用时该方法关联其方法体的过程。
2.静态绑定:在面向过程的中又称为前期绑定在程序编译时进行了绑定,即在还没运行时,就已经加载到内存。
3.动态绑定:在面向过程中称为后期绑定(运行时绑定)在运行时就进行绑定,根据实际情况有选择的进行绑定。
二.
优越性:
动态绑定灵活性相对静态绑定来说要高,因为它在运行之前可以进行选择性的绑定,很多时候优点就是缺点,正是因为选择性的绑定,所以动态绑定的执行效率要低些(因为,绑定对象,还要进行编译)。
三.
静态绑定实例:
//父类
public class Person {
protected String attribute="人的特性";
}
//子类
public class Male extends Person {
protected String attribute = "男人的特性";
}
//测试
public class Tester {
public static void main(String[] args) {
Person p = new Male();
System.out.println("" + p.attribute);
}
}
输出结果:
人的属性
可以看出子类的对象调用到的是父类的成员变量。所以必须明确,动态绑定针对的范畴只是对象的方法。
static 块静态加载:
public class StaticTest {
static {
System.out.println("没有主方法我照样执行");
}
}
运行结果:
没有主方法我照样执行java.lang.NoSuchMethodError: main
Exception in thread "main"
java中的变量都是静态绑定的;
构造方法 以及private,static,final类方法的调用都是静态绑定的。
四.
动态绑定实例:
//父类
public class Person {
public void show(){
System.out.println("人的特性");
}
}
//子类
public class Male extends Person{
public void show(){
System.out.println("男人的特性");
}
}
//测试
public class Tester{
public static void main(String [] args){
Person p = new Male();
p.show();
}
}
运行结果:
男人的特性
上面当创建一个Male类对象,通过
继承的关系
向上转型立即赋值给Person类的对象,貌似调用的是Person中的show();,然而从输出的结果看调用的却是Male类中的show();这就是动态绑定的结果,它能在运行时找到实际最适合类型的方法进行调用
分享到:
相关推荐
Java中的静态绑定与动态绑定是面向对象编程中的两个核心概念,它们关系到程序的编译与运行时行为。理解这两个概念对于写出高效、灵活的代码至关重要。 首先,静态绑定(也称为前期绑定或编译时绑定)是指在编译期间...
Java中的静态绑定与动态绑定是面向对象编程中的关键概念,它们决定了方法调用的方式和时机。静态绑定(也称为早期绑定或编译时绑定)和动态绑定(也称为晚期绑定或运行时绑定)是Java中多态性实现的基石。 **静态...
总的来说,理解和掌握动态绑定与静态绑定的概念对于编写健壮、可扩展的Java代码至关重要。它们是Java多态性的基础,也是面向对象编程中的关键特性。在实际编程中,开发者应根据需求选择合适的方法绑定类型,以实现既...
在C++编程语言中,动态绑定和静态绑定是两种关键的多态实现方式,它们对于理解和编写高效、灵活的代码至关重要。多态性允许我们通过一个共同的基类接口访问不同派生类的对象,从而提高了代码的重用性和可扩展性。 ...
在Java编程语言中,静态绑定和动态绑定是两个至关重要的概念,它们关乎程序的执行效率和灵活性。了解这两个概念对于提升Java开发技能至关重要。 首先,我们来解释一下静态绑定(也称为早期绑定)。静态绑定主要涉及...
二、静态资源与动态资源 在WPF中,资源可以分为静态资源和动态资源。静态资源在应用程序加载时被解析,一旦创建,其值在整个应用程序生命周期中保持不变,适合于那些不需改变的资源。动态资源则可以在运行时更改,...
标题中的“ARP静态绑定批处理文件”指的是一个用于在局域网环境中实现ARP静态绑定的自动化脚本。ARP(Address Resolution Protocol)是TCP/IP协议栈中的一个重要组件,它用于将IP地址转换为物理(MAC)地址,以便在...
#### 一、DHCP与静态绑定概述 在现代网络管理中,动态主机配置协议(Dynamic Host Configuration Protocol, DHCP)是一种自动化分配IP地址和其他网络参数的技术。对于拥有大量终端设备的企业网络而言,手动配置每个...
在Java编程语言中,静态绑定和动态绑定是两种不同的方法调用机制,它们与面向对象编程密切相关。这两种绑定方式决定了程序在运行时如何选择和执行特定的方法。 静态绑定(早期绑定),也称为编译时绑定,是指在程序...
一个Java程序的执行要经过编译和执行(解释)这两个... 静态绑定发生在编译时期,动态绑定发生在运行时 使用private或static或final修饰的变量或者方法,使用静态绑定。而虚方法(可以被子类重写的方法)则会根
- 静态绑定可能会阻止动态IP分配,如果你的网络环境使用DHCP服务,需谨慎操作,以免造成网络配置混乱。 - 当网络设备的IP地址发生变化时,原有的静态绑定会失效,需要及时更新批处理文件并重新执行。 总之,ARP静态...
1、讲解和演示动态绑定与静态绑定的概念与原理; 2、讲解和演示虚析构函数的概念与原理,并讲解为什么构造函数不能使用虚函数的原因;
C++是一种强大的面向对象编程语言,它支持两种主要的绑定机制:静态绑定和动态绑定,这两种绑定机制在实现多态性方面起着关键作用。本文将深入探讨这两种绑定方式及其应用。 首先,我们要理解对象的静态类型和动态...
在WPF中,我们可能会遇到需要将控件与这样的全局状态关联的情况,这时绑定到静态变量就变得很有用。 在WPF中,数据绑定是通过`{Binding}`标记扩展或代码-behind来实现的。绑定到静态变量的步骤如下: 1. **定义...
在本文中,我们将深入探讨如何在Windows Presentation Foundation (WPF) 中绑定静态变量,并通过使用IValueConverter接口来实现动态更新控件的显示。WPF是.NET Framework的一部分,它为构建丰富的桌面应用程序提供了...
C++在面向对象编程中,存在着静态绑定和动态绑定的定义,本节即是主要讲述这两点区分。 我是在一个类的继承体系中分析的,因此下面所说的对象一般是指一个类的实例。 首先我们需要明确几个名词定义: 静态...
在Windows 7系统中,传统的`arp -s`命令无法直接将IP地址与MAC地址进行静态绑定。这是因为Windows 7的安全策略禁止使用该命令来添加已经绑定的地址。因此,我们需要使用更高级的命令行工具——`netsh`来实现这一功能...
从动态绑定又引出了静态绑定。 程序绑定的概念: 绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定。 静态绑定: ...
总结起来,PHP 后期静态绑定是面向对象编程中一个强大的工具,它使得静态方法和属性在继承链中的行为更加灵活,能够根据实际调用场景动态改变解析的目标类。理解并熟练掌握这一特性,对于编写复杂的面向对象代码和...