![]() |
1
6
你需要使用 运算符 关键字检查引用的对象类型 n 然后键入对象并调用 巴尔) 方法。结账 派生.bar() 方法如下
|
![]() |
2
21
因为如果b扩展c,它意味着b是c,而不是c是b。 重新思考你想做什么。 |
![]() |
3
18
现有的答案就抽象的论点而言是可以的,但我想做一个更具体的答案。假设你 能够 这样做。然后该代码必须编译并运行:
在哪里执行
根据我的经验,要得到“并行类层次结构”是很难的,就像你描述的那样。你 可以 发现仿制药有帮助,但它会很快变得毛茸茸的。 |
![]() |
4
3
您可以为B创建一个以C为参数的构造函数。 见 this post 去做你想做的事情。 |
![]() |
5
2
你不能这样做,因为C不一定实现你在B中扩展它时所创建的行为。
所以,假设c有一个方法
但是-如果B有方法
|
![]() |
6
2
在示例中,如果您确定n是派生节点的实例,则可以将n强制转换为派生节点,或者可以使用泛型:
|
![]() |
7
2
基类不应该知道从它们派生的类的任何信息,否则将出现上面强调的问题。downcast是一种“代码气味”,而基类中对派生类的downcast则是一种“臭味”。这样的设计也会导致难以解决循环依赖性。 如果希望基类使用派生类实现,请使用模板方法模式,即在基类中添加虚拟或抽象方法,并在派生类中重写和实现该方法。然后您可以从基类安全地调用它。 |
![]() |
8
0
因为如果
|
|
user29759326 · 如何返回递归函数中的最后一个值? 3 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 3 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 3 月前 |
![]() |
rudraraj · java中未声明最终变量 4 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 4 月前 |