Java 中的向下转型
如果您使用 Java,则可以使用 TypeCasting、UpCasting 或 DownCasting。 它们的使用目的是从一种类型转换为另一种类型。
这可以是变量或对象。 对于一个对象,有两种可用的变换。
第一个是“父母对孩子”,第二个是“孩子对父母”。
这里,从Child到Parent的转换称为UpCasting,从Parent到Child的转换称为DownCasting。 我们可以隐式或显式执行UpCasting,但只能显式执行DownCasting。
在本文中,我们将了解 DownCasting 的详细信息。 此外,我们将通过使用必要的示例和解释来描述该主题,以使该主题更容易。
Java 中的向下转型
现在我们将看到一个有关向下转换的示例。
class ParentClass {
String name;
void showMessage()
{
System.out.print("Parent class method is called");
}
}
class ChildClass extends ParentClass {
int age;
@Override
void showMessage()
{
System.out.print("The child class method is called");
}
}
class Downcasting{
public static void main(String[] args)
{
ParentClass Parent = new ChildClass();
Parent.name = "Alex";
ChildClass Child = (ChildClass)Parent;
Child.age = 21;
System.out.print("Name:"+Child.name+" ");
System.out.println("Age:"+Child.age);
Child.showMessage();
}
}
我们来逐段解释一下代码。 首先,我们创建了一个名为ParentClass的父类,然后创建了一个名为ChildClass的子类,并用ParentClass扩展了它。
在ChildClass上,我们通过@Override执行覆盖。
之后,我们创建了另一个名为 Downcasting 的类,即我们的控制类。 在类中,我们从 ParentClass 创建了一个对象。
然后我们使用 ChildClass Child = (ChildClass)Parent;
行向下转换一个对象。
最后,我们打印所有数据。 现在执行上面的Java程序后。
您将得到如下所示的输出。
Name:Alex Age:21
The child class method is called
当您尝试隐式向下转换时出现编译器错误
在上面的示例中,我们显式执行了向下转型。 如果您尝试隐式向下转型,则可能会收到错误。
查看下一个示例,我们尝试隐式向下转型。
class ParentClass {
String name;
void showMessage()
{
System.out.print("Parent class method is called");
}
}
class ChildClass extends ParentClass {
int age;
@Override
void showMessage()
{
System.out.print("Child class method is called");
}
}
class Downcasting{
public static void main(String[] args)
{
ParentClass Parent = new ChildClass();
Parent.name = "Alex";
ChildClass Child = new ParentClass();
Child.age = 21;
System.out.print("Name:"+Child.name+" ");
System.out.println("Age:"+Child.age);
Child.showMessage();
}
}
如果您尝试编译上述程序,您将收到如下错误。
/tmp/AMCRVnDhlV/Downcasting.java:22: error: incompatible types: ParentClass cannot be converted to ChildClass
ChildClass Child = new ParentClass();
^
1 error
请记住,向下转换需要在外部完成。 通过使用 DownCasting,子对象可以获得其父对象的属性。
请注意,此处共享的代码示例是 Java 语言,如果您的系统不包含 Java,则必须在您的环境中安装 Java。
相关文章
Java中字节缓冲区类的演示
发布时间:2023/08/06 浏览次数:174 分类:Java
-
本文将帮助您了解 Java 虚拟机如何处理字节缓冲区类。 我们还将标明其范围并列出其主要参数。 最后,我们将运行两个 Java 程序来演示我们所讨论的内容。
Java中的循环缓冲区
发布时间:2023/08/06 浏览次数:113 分类:Java
-
本文介绍如何使用数组和链表在 Java 中生成循环缓冲区。Java中的循环缓冲区 循环缓冲区称为数组,用作队列。 当我们不断地将数据从一个进程移动到另一个进程时,我们无法将该数据存储在永
在Java中调用REST API
发布时间:2023/08/06 浏览次数:97 分类:Java
-
在本文中,我们将了解 REST API、它的工作原理和关键功能,以及如何使用 GET 和 POST 请求在 Java 中调用 REST API。Java REST API 概述 REST 一词被定义为表述性状态转移。
Java 中的名册应用程序
发布时间:2023/08/06 浏览次数:85 分类:Java
-
本文介绍如何使用 Java 开发名册应用程序。Java 中的名册应用程序 名册申请提供了候选人记录的详细信息或某些候选人必须执行工作的订单详细信息。 Roster 应用程序用于维护任何内容的记录。
用Java读取Excel文件
发布时间:2023/08/06 浏览次数:141 分类:Java
-
本文介绍了在 Java 程序中读取 Excel 文件的必要信息。 使用什么软件? 要遵循哪些步骤,最后但并非最不重要的一点是如何应用库以便用户可以读取 Excel 文件。 那么,让我们开始吧。用 Java 读
用 Java 创建 Excel 文件
发布时间:2023/08/06 浏览次数:142 分类:Java
-
本文介绍如何使用 Java 创建 Excel 文件。用 Java 创建 Excel 文件 Excel 工作表有存储数据的单元格,但用 Java 创建、读取和写入 Excel 文件很棘手。
Java 字母电话号码转换器
发布时间:2023/08/06 浏览次数:68 分类:Java
-
本文介绍如何用 Java 生成字母电话号码转换器。Java 字母电话号码转换器 有时,公司会使用电话号码格式,例如 555-GET-FOOD,这是编写电话号码的标准化流程,以便客户更容易记住。
Java中的并发队列实现
发布时间:2023/08/06 浏览次数:69 分类:Java
-
本文将讨论 Java 中并发队列的一些最有效的实现以及需要利用哪些实现。Java 中的并发队列 首先,我们来讨论所有三个队列。Java ConcurrentLinkedQueue、Java ArrayBlockingQueue、Java LinkedBlockingQueue