【发布时间】:2016-06-15 21:29:16
【问题描述】:
这句话是什么意思:
B b = new C();
这是否意味着 b 同时是 B 类和 C 类的对象?谁能详细解释一下。
我知道
B b = new B();
当我从 B 类创建对象时,但我不知道这句话是什么意思
B b = new C();
【问题讨论】:
-
那么,b 是超类 B 的对象吗?
-
C 是 B 类的子类。例如法拉利将是汽车的子类,因为它是汽车的一种。同样,这里的 C 是 B 的一种类型。变量 b 允许您创建 C,但只能通过 B 类的接口访问其方法等。想象一辆汽车有 start()、stop()、accelerate() 和 decelerate()。法拉利也会有这些方法,但它也可能添加一个 igniteTurbo() 方法。通过这样做,
Car car = new Ferrari();,它允许我们创建一个 Ferrari 对象,但只允许访问前四个方法,而不是 igniteTurbo() 方法。 -
我们还可以创建一个
List<Car> list = new ArrayList<>();,它允许我们通过多态性原理处理同一个列表中的多种类型的汽车。每辆 Car 可能以不同的方式实现其基本方法,但我们可以通过相同的接口签名调用它们。 -
好的,非常感谢您的帮助。
-
一个附加说明 - B 也可以是一个接口,ManoDestra 在示例中显示的 List => B 不需要真的是一个类 ;-)
标签: java class object constructor