创建新的java对象

时间:2017-12-12 00:48:39

标签: java inheritance

我现在正在学习java继承,我遇到了一个问题: 如果有两个班级:

public class A{
   //code of class A
}
public class B extends A{
   //code of class B
   //code in B rewrite some methods in A
}

并且,如果我想在我的客户端程序中使用这些类并创建一个'B'对象。

之间有什么区别吗?
A objectName = new B();

B objectName = new B();

感谢。

2 个答案:

答案 0 :(得分:0)

看一下这个链接,它可能会有所帮助: Polymorphism: Why use "List list = new ArrayList" instead of "ArrayList list = new ArrayList"?

用我自己的话来说,基本上,当你使用继承的对象时,它可以更容易地处理父对象的所有子对象之间的转换,并允许你为每个对象使用特定的方法。 / p>

干杯!

答案 1 :(得分:0)

这是多态性。 第一个:

A objectName = new B();

您可以更改objectName引用的对象,而无需担心更改基本类型,如下所示:

objectName = new ChildOfA();

通过父类型实例化对象,只要通过父类型('A')创建

,就可以将每个子对象存储在容器中。

例如:

List container = new ArrayList<A>();
container.add(new B());
container.add(new ChildOfA());

但是这个是不允许的,因此缺乏灵活性。

container = new ArrayList<B>();
container.add(new ChildOfA()); //error because childOfA is not of type of B