学习笔记-马士兵java-继承和权限控制、方法重写、super关键字、继承中的构造方法

1. 继承

  a. java中使用extends关键字实现类的继承机制,语法:<modifier>class<name>[extends<superclass>] {... ...}

  b. 通过继承,子类自动拥有了基类(父类,superclass)的所有成员(变量和方法)(但被private和default修饰的成员变量无法访问,拥有却没法使用)。

  c. java只支持单继承,不允许多继承:一个子类只能有一个基类,一个基类可有派生多个子类。

  d. 子类创建时,首先调用自身构造方法,在自身构造方法中必须包含父类构造函数(子类包含父类)。

2. JAVA权限修饰符:public、protected、private置于类的成员定义前,用来限定其他对象对该类对象成员的访问权限。

  ---------------------------------------------------------------------------------------------------------------------------------------------------------

    修饰符   类内部   同一个包    子类    任何地方

    private     yes      

    default     yes       yes       

    protected   yes       yes        yes

    public       yes      yes        yes      yes

       ---------------------------------------------------------------------------------------------------------------------------------------------------------

3. 对于class的权限修饰符只可以用public和default。

  a. public类可以再任意地方被访问

  b. default类只可以被同一个包内部的类访问。

4. 方法的重写(overwrite/override):

  a. 在子类中可以根据需要对从基类(父类)中继承来的方法进行重写。

  b. 重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型。

  c. 重写方法不能使用比被重写方法更严格的访问权限(和多态有关系)。

注意:重写子类方法名、参数列表、返回类型,尽量copy父类方法(以免不同,难以查错)。

5. super关键字:在JAVA类中使用super来引用基类(父类)的成分。

  a. this为当前对象的引用。

  b. super为当前对象里的父类对象的引用。

6. 继承中的构造方法:

  a. 子类的构造过程中必须调用其父类的构造方法。

  b. 子类可以再自己的构造方法中使用super(argument list)调用父类的构造方法。

  (也可以使用this(argument_list)调用本类的其他构造方法。)

   (如果调用了super,必须卸载子类构造方法的第一行。)

  c. 如果子类的构造方法中没有显示地调用父类构造方法,则系统默认调用父类无参数的构造方法。

  d. 如果子类构造方法中既没有显示调用父类构造方法,而父类又没有无参的构造方法,则编译出错。

posted @ 2013-10-09 23:11  被盗的小偷  阅读(226)  评论(0)    收藏  举报