直接上代码吧:
1.test.java
package cn.com;
public class test
{
public static void main(String[] args)
{
A a1 = new A();
A a2 = new B();
B b = new B();
C c = new C();
D d = new D();
// 优先级由高到低依次为:
// the.clarify(O)、super.clarify(O)、the.clarify((super)O)、super.clarify((super)O)
//
// a2.clarify(b),a2是一个引用变量,类别为A,则the为a2,
// b是B的一个的举例,于是它到类A里面找clarify(B obj),没有找到,
// 于是到A的super(超类)找,而A没有超类,因此转到第三优先级the.clarify((super)O),
// the仍然是a2,那里O为B,(super)O即(super)B即A,因此它到类A里面找clarify(A obj),
// 类A有那个窍门,但是由于a2引用的是类B的一个的对象,B覆盖了A的clarify(A
// obj)窍门,因此最终锁定到类B的clarify(A obj),输出为"B and A”
System.out.println(a1.clarify(b)); // A and A
System.out.println(a1.clarify(c)); // A and A
System.out.println(a1.clarify(d)); // A and D
System.out.println(a2.clarify(b)); // B and A
System.out.println(a2.clarify(c)); // B and A
System.out.println(a2.clarify(d)); // A and D
System.out.println(b.clarify(b)); // B and B
System.out.println(b.clarify(c)); // B and B
System.out.println(b.clarify(d)); // A and D
}
}
2.A.java
package cn.com;
class A
{
public String clarify(D obj)
{
return ("A and D");
}
public String clarify(A obj)
{
return("A and A");
}
}
3.B.java
package cn.com;
class B extends A
{
public String clarify(B obj)
{
return ("B and B");
}
public String clarify(A obj)
{
return ("B and A");
}
}
4.C.java
package cn.com;
class C extends B
{
}
5.D.java
package cn.com;
class D extends B
{
}
分享到:
相关推荐
本文将深入探讨Java多态性的概念、实现机制以及相关的编程规则。 一、基本概念 多态性意味着一个接口可以有多种不同的表现形式。在Java中,可以通过子类对象引用赋值给超类对象引用变量来实现这一特性。这意味着,...
【Java编程教程】详解Java 多态性 Java 作为一门面向对象的编程语言,其核心特性之一就是多态性。多态性使得程序在设计上具有更高的灵活性和可扩展性,允许我们以多种方式执行相同的操作。多态性这个概念来源于希腊...
Java 多态性详解 —— 父类引用子类对象 多态性是 Java 面向对象编程的三个特征之一,另外两个是封装和继承。多态性是指通过方法的重写、重载和动态连接来实现的。在 Java 中,多态性是为了解决单继承问题而引入的...
在Java中,多态性允许我们使用一个类型的对象对另一个类型进行操作,只要这两个类型之间存在继承关系。 #### 方法的重写 方法的重写发生在子类中,当子类继承父类后,可以重新定义父类中的方法。这种情况下,当...
多态性是面向对象编程的重要概念,它允许我们使用一个接口来表示多种类型的数据,从而增加了代码的灵活性和可重用性。在Java中,多态性的实现主要依赖于继承、接口和方法的覆盖。 1. 继承:Java中的类可以继承另一...
多态性是面向对象编程中的一个重要特性,它使得一个接口或方法能够适用于多种类型的数据。在Java中,多态性主要通过方法重载(overloading)、方法重写(overriding)以及动态绑定来实现。 #### 二、面向对象编程三...
### 使用Java多态性实现一个简单的动物园管理系统的知识点解析 #### 一、抽象类与抽象方法 本系统中,`Animal`被定义为一个抽象类,这意味着它不能被实例化,仅能作为其他类的基础来扩展。抽象类的存在主要是为了...
多态性则可以通过接口或抽象类来体现,比如定义一个Person接口,使得Student和Teacher都能实现。 文件和IO流也是Java的重要部分。例如,你可以看到如何读取和写入文本文件,使用FileReader、FileWriter,或者更高级...
Java的多态性是面向对象编程的一个核心概念,它允许我们设计更加灵活和可扩展的代码。多态性使得程序可以在不明确指定具体对象类型的情况下进行操作,这大大提高了代码的复用性和可维护性。在Java中,多态性的实现...
这个例子展示了多态性,尽管`animal`变量是`Animal`类型,但实际引用的是`Dog`对象,因此调用的`sound()`方法是`Dog`类中的版本。 3. **练习题** 在学习Java基础时,通过解决相关的练习题,可以加深对类继承和...
例如,设计一个宠物系统,可以有Dog、Cat等不同类型的宠物,而Person类中有一个`feed()`方法需要喂养宠物,这时就可以利用多态性,将参数定义为父类类型Pet,使得Person可以喂养任何类型的宠物,无需关心具体是Dog...
在给定的PPT教案中,首先通过一个简单的例子来解释多态性。假设有一个`Teacher`基类,有子类`JavaTeacher`和`.NETTeacher`,它们都实现了`introduce()`和`teach()`方法。`TeacherManager`类中有一个`judge()`方法,...
在Java编程语言中,继承是面向对象编程的一个核心特性,它允许一个类(子类或派生类)从另一个类(父类或基类)继承属性和方法,从而实现代码的复用和扩展。这个小例子可能是为了演示如何在Java中实现继承以及它所...
首先,Java的核心特性包括类、对象、封装、继承和多态性。在"代码大全的例子"中,你可能会找到关于如何定义和创建类的示例,以及如何通过对象来操作数据。封装是Java中保护数据的关键机制,你可以看到如何使用访问...
"Java多态性定义与用法实例详解" 本文主要介绍了Java多态性定义与用法,详细分析了多态的概念、功能以及Java定义与实现面向对象多态性的相关操作技巧。 一、基本概念 多态性是指发送消息给某个对象,让该对象自行...
继承和多态的相关Java源码下载,比较散,像覆盖和重载、对象类Object和它的toString()方法、多态性、动态绑定和一般程序设计、数组线性表ArrayList类、final类、方法和变量、数据域和静态方法的隐藏、调用父类的方法...
如果我们有一个通用的`draw()`方法,那么通过父类`Point`的引用调用`draw()`,实际执行的是子类`Line`或`Circle`中的`draw()`方法,这就是多态性的一个体现。 总结,类的继承性和多态性是Java面向对象编程的重要...
Java程序设计中的多态性是面向对象编程的一个核心特性,它允许我们使用一个类的引用来调用子类的方法或访问子类的属性,从而实现更灵活和可扩展的代码设计。多态性体现在两个主要方面:静态多态(编译时多态)和动态...
这些例子将帮助理解如何创建和使用类,以及如何通过继承和多态性提高代码复用。 5. **异常处理**:Java提供了强大的异常处理机制,如try-catch-finally块和throw、throws关键字,例子会展示如何有效地处理运行时...
Java的多态性是面向对象编程的一个核心概念,它允许我们使用一个接口来表示不同的类。多态在Java中有着深远的影响,它提高了代码的可重用性、灵活性和可扩展性。本篇将通过一个经典例子深入解析多态的含义,并通过...