在Java中使用参考

时间:2017-03-29 07:33:31

标签: java

public ApiActionResult SaveDocument([ModelBinder(typeof(MyModelBinder))]DocumentVM contentDTO)

这里我们如何将子引用分配给父代?而且b和c是不同的对象类型,那么我们如何将一个分配给另一个?

3 个答案:

答案 0 :(得分:2)

abcA类型的变量,这意味着它们可以保存对类A或任何子类的对象的引用A的{​​{1}},其中包括BC

写作时

b = c;

您没有将类C的对象分配给类B的变量(不会通过编译),您正在为类{{1}的对象分配引用}(由C变量持有)到类c的变量。

答案 1 :(得分:1)

  

我们如何将子引用分配给父代?

在面向对象的概念中,当您说class B extends A时,class Bclass A保持 IS-A 的关系。因此,您可以将B对象作为类型A分配给引用。

  

b和c是不同的对象类型,然后我们如何分配一个   另一?

即使它们属于不同类型,因为class B IA-A 类型class Aclass C(也) IS-A 类型class A(就他们的关系而言),所以你可以分配B& C对象引用类型A。

一个重要的一点是,你不能调用指向对象B的引用类型A的任何B特定成员(方法/字段) 即,您只能使用引用类型A来呼叫A的成员(即使对象属于B)。

答案 2 :(得分:1)

由于多态和继承。当你说的时候;

class Manager extends Worker{}

实际上你说,所有经理都是工人。但是经理比工人更具特色。出于这个原因,我们使用extends关键字进行继承。每个经理都是工人,但更详细的工人。

Worker o1 = new Worker();
Worker o2 = new Manager();
o1 = o2;

在第一行中,o1是工作对象(通用类型)。 第二行是向上转换的一个例子。这一行说:o2是一个管理者对象,但o2的界面是工人的界面。 在第三行中,因为每个经理都是一个工人,所以可以将经理对象分配给工人类型参考。