治疗技术焦虑的方法就是学习!

《Thinking in Java》学习笔记-多态

Java 李新广 1586℃ 0评论

在面向对象的语言中,多态是继抽象、继承之后的第三种基本特征。

向上转型

我们把一个类的引用当成是它的父类的引用来使用的做法称为向上转型。

我们想要一个Ball的引用,但是得到的是一个BasketBall的引用,调用ball.play()方法输出的自然也就是“play basketball”。这里,BasketBall就是向上转型为了它的父类Ball。你说去打球,其实就是去打篮球。
另外,我们看到BasketBall除了重写了父类的play方法之外,还扩展了一个type方法,但是如果想要在main方法中使用ball.type()去调用,是不被允许的。所以说子类在向上转型时会缩小接口,但不会比父类的接口更小。

构造器与多态

父类的构造器会在子类的构造过程中被调用,而且是按照继承的层次关系逐步向上调用的,这样保证每个父类的构造器都能得到调用。


几个类之间的关系如下:

执行顺序:首先调用继承层次结构的根,然后逐步向下,直到最低层的子类,然后按照声明顺序调用成员变量的初始化方法,然后才是调用最底层子类的构造器主体。

如果在构造器内调用一个多态方法。在构造函数中唯一可以安全调用的方法是基类中的final方法(private方法默认加上了final关键字),因为他们在子类中不可能被覆盖,所以不会出现调用时还未被初始化的情况。

转载请注明:大道至简 » 《Thinking in Java》学习笔记-多态

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址