使用访问控制的原因有以下两点:
让应用程序员不要触摸他们不应该触摸的部分。
使类库的创建者(研发程序员)在不影响后者使用的情况下完善更新工具库。
Java 有三个显式关键字来设置类中的访问权限:public(公开),private(私有)和protected(受保护)。这些访问修饰符决定了谁能使用它们修饰的方法、变量或类。
public(公开)表示任何人都可以访问和使用该元素;
private(私有)除了类本身和类内部的方法,外界无法直接访问该元素。
protected(受保护)类似于 private,区别是子类可以访问 protected 的成员
default(默认)default 被称为包访问,该权限下的资源可以被同一包中其他类的成员访问。
组合(Composition)经常用来表示“拥有”关系(has-a relationship)。例如,“汽车拥有引擎”。
聚合(Aggregation)动态的组合。
组合表示组件不可拆分,同时存在,同时消亡。
聚合表示在某些条件下能够进行拆分。
多用组合,少用继承。
子类会继承父类的所有成员,包括私有成员,只是被隐藏起来并且不可访问而已。
父类对象接收的所有消息也能被子类对象接收(多态)。
子类与父类是相同的类型。
如果子类没有添加新的方法,可以用一个子类对象完全替代父类对象,这叫作**“纯粹替代”,也经常被称作"替代原则"。这种关系称为是一个(is-a)关系**
如果子类添加了新的方法,新类型仍然可以替代基类,但是这种替代不完美,原因在于基类无法访问新添加的方法。这种关系称为像是一个(is-like-a)关系。
把子类当成其基类来处理的过程叫做“向上转型”(upcasting)。
面向对象的程序设计语言是通过“动态绑定”的方式来实现对象的多态性。
所有的Java类都继承Object类。