父类
================================================================
public class Fruit {
public void eat() {
System.out.println("i wanna eat fruit");
}
}
-----------------------------------------------------------------------------
publicClassAppleextendsFruit{
publicvoideat(){
System.out.println(“i wanna eat apple”);
}
}
publicClass Orange extendsFruit{
publicvoideat(){
System.out.println(“i wanna eat orange”);
}
}
--------------------------------------------------------------------------------------
测试类
-------------------------------------------------------------------------------------
public class TestBind {
public static void chose(Fruit f) {
f.eat();
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Fruita = new Apple();
Fruito = new Orange();
TestBind.chose(a);
TestBind.chose(o);
}
}
输出结果:
i wanna eat apple
i wanna eat orange
--------------------------------------------------------------------------------------
动态绑定:是指在执行期间(非编译期间)判断所引用对象的实际类型,根据其实际的类型调用其相应方法。
如上代码在执行期就决定调用哪个实例的方法了
--------------------------------------
Java中除了static和final方法外,其他所有的方法都是运行时绑定(也叫后期绑定)的。【不能被重写】
private方法都被隐式指定为final的【子类不能重写父类的私有方法】
因此final的方法不会在运行时绑定。
来源:小伙伴开发网http://www.kaifaer.com
分享到:
相关推荐
"北大青鸟javaOOP多态Ch03作业全集.rar"这个压缩包文件很显然是针对学习者提供的一系列关于Java多态性的练习和案例,帮助学生深入理解并掌握这一核心技能。 多态性是面向对象三大特性之一,另外两个是封装和继承。...
### Java多态经典讲解 #### 一、理解Java多态 多态,作为面向对象编程的三大特性之一,是继抽象和继承之后的关键概念。它允许我们以统一的接口处理不同类型的对象,增强了代码的灵活性和可扩展性。在Java中,多态...
运行时多态则基于方法的重写(Overriding),子类可以重写父类的方法,当使用父类引用指向子类对象时,如果调用了被重写的方法,那么在运行时会根据实际的对象类型来执行子类的方法,这就是动态绑定。 理解多态的...
多态的另一个关键点是动态绑定。在Java中,方法的调用是在运行时决定的,即所谓的动态绑定或晚期绑定。这意味着即使父类引用指向子类对象,调用的方法也是子类重写后的版本,这就是多态的核心机制。 总结起来,多态...
这份"java面试宝典,超好的java+web知识点总结"涵盖了Java和Web开发的关键概念,以下是其中可能包含的一些重点内容: 1. **Java基础知识**: - **数据类型与变量**:包括基本数据类型、引用数据类型以及变量声明和...
4. **动态绑定(Dynamic Binding)**:在运行时确定调用哪个方法,这就是多态的核心机制。如果调用的是覆盖方法,那么实际执行的是子类的方法。 通过理解并熟练运用继承、抽象和多态,开发者可以构建出更加灵活、...
6. **继承和多态**:理解类之间的层次关系,单一继承与接口的多重实现,以及方法的覆盖和重载,理解多态的动态绑定特性。 7. **接口**:接口的定义、实现,以及接口与抽象类的区别和选择使用场景。 8. **包和导入*...
而动态绑定(或晚期绑定)是在运行时根据对象的实际类型来确定调用哪个方法,这是Java中多态性实现的关键。 4. **重写(Override)与重载(Overload)**: - 重写发生在子类中,子类定义了与父类相同的方法签名...
Java动态绑定和内联是Java编程中的两个关键概念,它们对于理解Java的面向对象特性,尤其是多态性和性能优化有着重要的作用。 动态绑定,又称晚期绑定或运行时绑定,是Java语言的一个核心特性。它指的是在运行时而非...
这就是著名的“动态绑定”或“晚期绑定”。 在"Java 经典Javapeople继承与多态"的场景中,多态性可能体现在如下情况:假设有一个处理人员的通用方法`process(Person p)`,即使传入的是`Student`或`Teacher`对象,...
以上就是关于Java中继承和多态的基本知识点,通过这些概念,我们可以构建出更高效、更易于维护的代码结构。提供的压缩包文件"codefans.net"可能包含了一些示例代码,可以帮助你更好地理解和实践这些概念。
Java是软件开发领域中最常用的语言之一,特别是在Android...熟悉这些Java和Android开发的知识点,能帮助你在面试中表现出色。在准备面试时,不仅要掌握理论知识,还要有实际项目经验,能够灵活运用所学解决实际问题。
根据提供的文件信息,我们可以推断出这是一本关于Java基础与面向对象编程的教程书籍——《FJOO:Java基础与面向对象》第三版。本书主要涵盖了Java编程的基础知识及面向对象(Object-Oriented Programming,简称OOP)...
Java实验报告涵盖了一系列关键知识点,包括基础运算、控制语句与数组、多态与嵌套、接口和GUI编程,以及异常处理和多线程。以下是对这些知识点的详细阐述: 1. **基本运算**:Java提供了多种基本数据类型,如整型、...
此外,父类引用指向子类对象也是实现多态的关键,这在Java中表现为父类类型的引用变量实际存储子类对象的引用。 方法重载是静态多态的一种形式,它指的是在同一个类中定义多个同名方法,但是方法的参数列表不同。在...
运行时多态是Java实现动态绑定的关键,也是面向对象设计的重要原则。 5. **构造器**:构造器是用于初始化新创建对象的特殊方法,它的名称必须与类名相同,没有返回类型。构造器用于设置对象的初始状态,或者执行...
以下是基于该书的一些关键知识点的详细阐述: 1. **Java语法**:Java是一种静态类型的、面向对象的编程语言,其语法严谨,注重类型安全。基础语法包括变量定义、数据类型(如整型、浮点型、字符型和布尔型)、...
**多态**是面向对象的另一大特性,分为静态绑定(编译时多态)和动态绑定(运行时多态)。静态绑定是通过方法重载实现,即在同一个类中用相同的名字但参数不同的方法。动态绑定则是通过方法重写,子类继承父类后可以...
7. **反射与动态代理**:Java反射机制允许在运行时检查类、接口、字段和方法,动态代理则可以创建在运行时生成的代理类,用于实现AOP(面向切面编程)或动态绑定。 8. **泛型**:泛型引入了类型参数,增强了代码的...