我知道如何创建对象。
Class1 name = new Class1();
这意味着从Class1创建一个对象,但是我在互联网上看到了一些代码,但没有得到。我想在Google上搜索有关该问题的信息。但是我不知道该搜索什么。你能帮我理解吗?
Class1 name = new Class2();
那是什么意思?我的意思是,我是从Class1创建对象吗?我是从Class2创建对象吗?还是我同时从Class1和Class2类创建对象?
答案 0 :(得分:0)
假设代码可以编译,我们可以自信地说Class2
继承了Class1
。
执行以下操作时:
Class1 name = new Class2();
您正在创建Class2
的实例/对象,但变量的类型为Class1
。这是完全正确的,因为Class2
源自Class1
。
只要您知道new
运算符是创建对象的原因,我们就可以说,new
运算符后面的任何类型都是正在构造的对象的类型。
仅此而已,仅此而已。
答案 1 :(得分:0)
在第二个示例中,您指定
Class1 name = new Class2();
也就是说,Class2也继承自Class1,因此它包含Class1和Class2的功能。但是由于您将其声明为Class1,因此只能在程序中使用Class1功能。
但这是简单的解释。 Class1实际上可以是Class2实际实现的接口,或者Class1可以是必须继承的抽象基类。您可以将名称强制转换为Class2,并同时获得Class1和Class2功能。 没有具体例子,您几乎无法理解所寻求的答案。