继承

这是《Java8编程参考官方教程》第8章的笔记。

基础知识:
  1. 尽管子类包含超类的所有成员,但是子类不能访问超类中被声明为私有的那些成员。
  2. 超类变量可以引用子类变量,如parentClass = childClass;但是parentClass只能访问childClass的那些在超类中定义的部分。


super的两种用法:
  1. 调用超类的构造函数
  2. 用于访问超类中被子类的某个成员/方法隐藏的成员/方法。这句是指子类中有与超类同名的成员/方法。
super总是引用最近超类的构造函数。

构造函数的调用次序:从最超的类开始。

子类的重写方法会使超类的被覆盖,如果希望访问超类中被重写的方法,可以使用super。

抽象类:abstract
不能使用new运算符直接实例化抽象类,不能声明抽象的构造函数,也不能声明抽象的静态方法。抽象类的子类要么实现超类中的所有抽象方法,要么自己也声明为抽象的。
尽管不能用于实例化对象,但是可以使用它们创建对象引用。e.g. parentClass p = new childClass();是错误的。但是childClass c = new childClass(); parentClass p = c;是可以的。

final的用法:
  1. 创建常量
  2. 阻止重写
  3. 阻止继承
将类声明为final,就隐式地将所有方法也声明为final。
将类同时声明为final何abstract是非法的,因为抽象类本身是不完整的,它依赖子类来提供完整的实现。

Object类是所有其他类的超类。
posted @ 2016-06-17 20:33  StevenLuke  阅读(175)  评论(0编辑  收藏  举报