问题标签 [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 投票
1 回答
164 浏览

c++ - 如何使用 C++ 中的 upcast unique_ptr 指针仅引用在派生类中定义的方法?

假设以下类

我定义了一个指针,如下所示:

现在我想使用 ptr 指针访问 Doanotherjob:

这甚至是正确的做法吗?语法是什么?

0 投票
1 回答
45 浏览

java - Java向上转换嵌套类型参数

鉴于下面的 Java 代码,我想知道为什么向上Foo<String>转换Foo<object>不起作用?本质上,我想告诉 Java,如果T是 的子类S,那么Foo<T>是 的子类Foo<S>。我知道在 Scala 中有一种方法可以做到这一点,但是在 Java 中有没有一种方法可以做到这一点?如果没有,是否有解决方法来编译以下代码?

0 投票
2 回答
237 浏览

c++ - 向上转换空指针是否会导致未定义的行为

我想知道以下代码是否会导致未定义的行为:

0 投票
1 回答
118 浏览

java - Java 多态性 - 引用变量问题

我正在学习java和多态。我正在使用 java 的书籍开头。我试图用它们做实验。我了解到您可以调用的方法取决于引用对象。所以我创建了这段代码

引起我问题的一件事是控制台上没有显示“Dog 3 test”。它工作正常,直到狗 2,但狗 3 不工作。

这是我的动物课

0 投票
0 回答
22 浏览

c++ - 通过向上转换调用私有函数

在下面的类中,我将派生对象向上转换为基指针。然后我可以调用从 main 派生的“私有”成员函数。这怎么可能?我的直觉是一个函数是否可以被调用(即访问)是基于L值(Base * b)。调用什么函数基于 R 值(新派生),因为它是虚拟的。有人可以为我澄清一下吗?

我的输出是

0 投票
6 回答
812 浏览

java - Upcasting a subclass reference in Java

I'm doing the following exercise in Thinking in Java 4th Edition by Bruce Eckel:

Exercise 16: (2) Create a class called Amphibian. From this, inherit a class called Frog. Put appropriate methods in the base class. In main(), create a Frog and upcast it to Amphibian and demonstrate that all the methods still work.

What is the difference between Frog f = new Frog(); and Amphibian f = new Frog(); in:

0 投票
1 回答
128 浏览

c# - 在起订量上向上转换接口不起作用

我正在使用最小起订量进行测试。我将对象上载到它的接口并发现了一个问题。

以下是显示问题的测试。

  • 对象

    /li>
  • 测试失败

    /li>
  • 测试通过

    /li>

如何更改它,以便当我将Mock<Golf>.Object其转换为其中一个接口时,我仍然可以访问该Model属性?

0 投票
1 回答
1778 浏览

scala - 为什么在这个 Scala 代码中需要向上转换?

这编译:

但是,如果删除了 upcast,它将无法编译:

为什么?从extends子句中我们知道那Foo是 a SortedSetLike[A, This],所以向上转换当然是有效的——但这不是表明编译器允许发生冲突继承吗?

0 投票
2 回答
288 浏览

c++ - 向上转型和向下转型 C++

我在玩指向基类的指针,我将一个矩形指针转换为一个圆形指针并printradius()从矩形调用函数!有人可以解释为什么允许这样做吗?谢谢。

输出:

圆的半径是2

0 投票
2 回答
100 浏览

c++ - 变体返回类型向上转换覆盖c ++

clone()对以下示例中的方法有疑问。我预计这sizeof(*((*ptr1).clone()))将与大小相同,b1但它们不是。他们是。我错过了什么?sizeof(*(ptr2.clone()))c1sizeof(a1)

这是代码。