问题标签 [upcasting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
541 浏览

java - 向上转型对静态方法有影响吗?

为什么当我们在基类和派生类中将方法声明为静态并进行向上转换时,它会调用基类方法。

0 投票
11 回答
151454 浏览

java - 为什么我们在 Java 中为子对象分配父引用?

我在问一个非常简单的问题,但我对此有点困惑。

假设我有一堂课Parent

还有另一堂课Child

最后是我的 Main.java 类

如果我制作一个像这样的子对象

然后child对象可以访问这两个name and salary变量。

我的问题是:

只允许访问nameParent 类的变量。那么这条线的确切用途是什么?

而且当它使用动态多态性时,为什么在这样做之后无法访问子类的变量

0 投票
2 回答
1499 浏览

c++ - 为什么在向上转换后调用派生类的虚方法?

在向上转换派生类的指针后,派生类的虚方法仍然被调用,这在我看来是错误的,因为切片应该发生。你能评论一下这段代码有什么问题吗?

输出:你好派生

0 投票
1 回答
7731 浏览

oop - 什么是“向上”?

我可以看到“upcast”一词与OOP有关,但我通过搜索互联网找不到确切的定义。

谁能解释这个术语是什么意思以及这种技术在什么情况下有用?

0 投票
1 回答
4030 浏览

java - Java 通配符不允许类型转换

Java 编译器告诉我actual argument < anonymous Message< Integer, MainFoo >> cannot be converted to Message< Integer, Foo< ?>> by method invocation conversion.

为什么?

什么可以转换为 Message< Integer, Foo< ?>> ?

0 投票
4 回答
227 浏览

c# - 一个向上转换的对象是否可以再次向下转换而不为基类类型的每个派生类类型尝试转换?

我有一个案例,其中给出了一个对象集合,这些对象都派生自同一个基类。如果我遍历集合并检查每个项目的类型,我可以看到该对象是派​​生类型,然后相应地处理它。我想知道的是,除了我已经在做的事情之外,是否还有一种更简单的方法来检查派生类型。通常不需要重复代码,所以我目前的方法对我来说似乎有点不对劲。


我正在使用一个 Web 服务,其中每个 Web 服务都必须具有相同的结果类型。

目标是我们可以根据需要向客户端返回尽可能多的不同类型的消息。与每次 Web 服务调用获取一条消息不同,被调用者可以在一次行程中了解他们所有的错误/成功,并消除从消息中解析特定信息的字符串。

我最初考虑使用泛型,但由于 Web 服务可能具有不同的消息类型,因此该集合被扩展为使用基本消息类。

0 投票
2 回答
472 浏览

c# - 在 C# 中,我是否必须执行显式向上转换?

给定具有基类B和子类的类层次结构S

我可以通过隐式转换将 a 分配S给a:B

如果我想将其降级为 aS我必须明确地这样做:

现在,我的理解是我们可以保证从Sto始终存在赋值兼容性B,因此我们永远不必以以下方式执行显式向上转换:

这个断言是否正确,或者正如问题所述,我是否必须执行明确的向上转型?

0 投票
2 回答
200 浏览

java - 如何使用向上转换或其他方法从子类中获取超类的实现?

例如,我只是想知道如何使用子类来实现超类。

试图向上转换它以获得超类实现但无济于事

如何使用 animal1 对象获取超类实现?

0 投票
7 回答
2504 浏览

c# - 如何将对象转换为其实际类型

考虑以下代码:

调用Foo()后,TestGeneric 中的 T 是MyClass,而不是MyClass2。如何实现将val视为MyClass2实例?提前致谢。

更新:我实际上并不知道该对象是使用MyClass2 ctor 创建的,而是可以通过调用 val.GetType() 来推断这一点,因此简单的MyClass2将不起作用

0 投票
1 回答
340 浏览

java - Android片段框架:向上转换不起作用

我正在研究活动中的 Listfragment。我在活动中有一个嵌套类。

但编译器抱怨 DummySectionFragemt 不是片段

编译器抱怨:类型不匹配:无法从 MainActivity.DummySectionFragment 转换为 Fragment

当我让 DummySectionFragment 直接扩展 Fragment 时,它可以工作,但我只是不明白为什么它以前不能工作。显然,DummySectionFragment 扩展了 ListFragment 扩展了 Fragment。这里应该是隐式向上转换,我不明白为什么它不起作用:(