注意:在执行类的所有清理动作的时候,先清理派生类的销毁方法,再清理基类的方法。

    如果Java的基类中拥有某个已经被多次重载的方法,那么在导出类中重新定义该方法并不会屏蔽基类中的任意版本;
    如下示例中虽然在Bart中引入了一个新的重载方法,但是Bart在Homer中的所有重载方法都是可用的。

    1. class Homer{
    2. char doH(char c){
    3. System.out.println("doh(char)");
    4. return 'h';
    5. }
    6. float doH(float f){
    7. System.out.println("doF(float)");
    8. return 1.2f;
    9. }
    10. }
    11. class MilHouse{}
    12. class Bart extends Homer{
    13. void doH(MilHouse milHouse){
    14. System.out.println("doH(MilHouse)");
    15. }
    16. }
    17. //在子类中,可以对基类的方法进行重载,且互不影响
    18. public class Hide {
    19. public static void main(String[] args) {
    20. final Bart bart = new Bart();
    21. bart.doH(1);
    22. bart.doH('x');
    23. bart.doH(1.0f);
    24. bart.doH(new MilHouse());
    25. }
    26. }

    继承:“is-a”(是一个)的关系,即当前类属于基类。
    组合:“has-a”(有一个)的关系,当前类有一个由某一基类类型的属性。