继承详细介绍

来源:互联网 发布:360 卫士 for mac 编辑:程序博客网 时间:2024/06/02 05:55

1. 继承具有以下特点:

 1)继承具有层次结构,并具有传递性

 2)子类继承了父类的属性和方法(不包含构造方法),同时也可以拥有自己的方法。

 注意:java只支持单继承,即一个子类只能有一个超类(父类),但一个父类可以派生出多个子类,如同在现实生活中,一个儿子只能有一个父类,

但一个父类可以有多个儿子。

2. 在使用继承时注意以下事项:

 1)除非父类在开发中,否则不应该修改父类

   2)子类构造方法要负责调用适当的父类构造方法,不管是以显示还是隐式的方法

   3)父类的字段必须比子类的字段先初始化

4. 不能被继承的父类成员

 private成员、子类与父类不在同包中、使用默认访问权限的成员、构造方法

5. 访问修饰符:

 访问修饰符    本类    同包    子类    父类

  private      *

  friebdly(默认)   *     *

  protected    *     *      *

  public      *      *       *     *

6. 多重继承关系的初始化顺序是:

  父类属性——父类构造方法——子类属性——子类构造方法

7. 方法重写与方法重载

        位置    方法名    参数表    返回值    访问修饰符

  方法重写  子类     相同     相同    相同或是其子类 不能比父类更严格

  方法重载  父类     相同     不同     无关      无关

8. 继承的优点:

 1)可以创建更为特殊的类型

 2)消除重复代码

 3)利于维护

9. super关键字

 super关键字是指对象的引用,只不过它是指向父类对象的引用

10. super关键字的规则为:
 若要在子类构造方法中调用超类构造方法,则在子类构造方法中的第一条语句要用super关键字来调用:

  1)调用父类构造方法的语法为:

    super();//或super(参数列表);  必须是第一句

  2)调用父类的普通方法的语法为:

    super.methodname(); //或super.methodname(参数列表);

    super.methodname()是假设这个方法是其父类型时所调用的对应方法,但需要强调的是:这个方法不一定在父类中被定义,

  它可能是从层次结构上更上层的类中继续来的。

11. super关键字来访问父类的成员,需要注意:

  1)super只能出现在子类的方法和构造方法中;

  2)super调用构造方法时,只能在第一句;

  3)super不能访问父类的private成员

12. 当父类不需要被实例化时,可以把父类方法声明为抽象方法:

  public   abstract   calss   类名{};