gpt4 book ai didi

java - 类型转换和继承中向上/向下转换的区别[Java]?

转载 作者:行者123 更新时间:2023-12-04 15:09:06 24 4
gpt4 key购买 nike

我们知道以下内容::(编辑 20210101_0059 EST)

public class Main {
public static void main(String[] args) {
int myInt = 9;
double myDouble = (double) myInt; // casting: int to double
}
}

Type casting is when you assign a value of one primitive data type to another type.

Widening Casting (automatically) - converting a smaller type to a larger type sizebyte -> short -> char -> int -> long -> float -> doublehttps://www.w3schools.com/java/java_type_casting.asp


问题::

类型转换和向上转换/向下转换有什么区别?类型转换是如何工作的?

例子中是向上转型吗?如果是这样,是否意味着整数继承自 double? (我不这么认为)



更新时间低于 20210101_0059~0154 EST

我换行

double myDouble = myInt; // casting: int to double
// change to >>
double myDouble = (double) myInt; // casting: int to double

因为我的目的是谈论选角。这个错误导致人们开始谈论类型转换而不是强制转换。


到目前为止,根据答案,我知道 Java 语言规范中没有向上/向下转型。我简要地浏览了5.5. Casting Contexts & 5.5.1. Reference Type Casting

问题::

那么,究竟什么是类型转换? “转换”基本上只是“类型转换”吗?

还有很多类型的转换(/类型转换)对吗?


问题(用于确认)::

1.因此,父类(super class)和子类之间不一定存在强制转换(即:强制转换不仅存在于具有继承关系的 2 类中),对吧?

2。通常,当我们谈论向上/向下转换时,我们在“引用类型转换”中使用它。但在我们的例子中,double myDouble = (double) myInt; 没有向上/向下转换。而且,在这两种情况下,铸件(向上/向下铸件和 int-double 铸件)只是“类型转换”。对吧?

3。简而言之,它们之间的唯一区别是:

类型转换——转换的通用术语。

Up/Down casting -- 一个只在涉及继承的“引用类型转换”中使用的术语。

转换“byte short char int long float double”(例如:double myDouble = (double) myInt;)——(只是“引用类型转换”中未使用的另一种类型转换").

对吧?


最佳答案

Type casting is when you assign a value of one primitive data type to another type.

根据规范,这不是真的。该规范指定了一个 cast operator看起来像这样:

(some type) some expression

例如

(float)someDouble

规范还指定这是一个 casting context .

W3School 所说的“类型转换”,规范称之为“转换”。 转化发生在上下文中。而“向上转型”和“向下转型”,W3Schools 可能意味着“扩大转换”和“缩小转换”。

这个:

double myDouble = myInt;

是从 intdouble(众多 widening primitive conversions 之一)的转换,发生在 assignment context 中.没有 Actor 参与。

将其与实际类型转换进行比较:

(float)myDouble

这是在转换上下文中发生的从 doublefloat (许多 narrowing primitive conversions 之一)的转换。

不,像 intdoublefloat 等基本类型不能从任何东西继承。这些基本转换是规范“硬编码”/规定的,而不是“int 继承自 double”或类似内容的结果。

关于java - 类型转换和继承中向上/向下转换的区别[Java]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65527270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com