1、 类之间的关系:
1) 依赖(“uses-a”) ,是一种最明显的、最常见的关系。如果一个类的方法操纵另一个类的对象,我们就说一个类依赖于另一个类。
2) 聚合(“has-a”)、聚合意味着类A的对象包含类B的对象。
3) 继承(“is-a”): 是一种用于表示特殊与一般关系的。一般而言,如果类A扩展类B,类A不但包含从类B继承的方法,还会拥有一些额外的功能。
2、 一个关键字:super
在子类中想要调用父类中被重写的方法时,可以用super 关键字。
如super.getName();
super 不是一个对象的引用,不能将super赋给另一个对象变量,它只是一个指示编译器调用父类方法的特有的关键字。
super也可以在子类的构造器中应用,如super(name , id , sex); 是调用父类中含有name、id、sex参数的构造器的简写形式;使用速super调用构造器的语句必须是子类构造器的第一条语句。
3、 多态:一个对象变量可以引用多种实际类型的现象被称为多态(polymorphism);
4、 动态绑定:在运行时能够自动的选择调用哪个方法的现象称为动态绑定(dynamic binding)。
5、 阻止继承:final类和方法
不允许扩展的类被称为final类,类中的方法也可被声明为final,如果这样做,子类就不能覆盖这个方法(final类中的所有方法自动的成为final方法,不包括域)
将方法或类声明为final主要因为确保它们不会再子类中改变语义。
6、 抽象类
1) 包含一个活多个抽象方法的类本身必须声明为抽象的。关键字为abstract
2) 抽象方法充当着占位的角色,它们的具体实现在再子类中。
3) 即使不含抽象方法,也可以将类声明为抽象类。
抽象类不能被实例化,即不能创建这个类的对象。但可以定义一个抽象类的对象变量,但是它只能引用非抽象子类的对象。