黑马程序员技术交流社区

标题: 继承 [打印本页]

作者: 技术人生    时间: 2015-7-22 20:47
标题: 继承
继承就是一种由已有的类创建新类的机制,是指在已有类的基础上扩展功能。继承中分为子类和父类

类可以有两种重要的成员:成员变量和方法。子类的成员中有一部分是子类自己声明定义的,另一部分是从它的父类继承的。

1.所谓子类继承父类的成员变量作为自己的一个成员变量,就好象它们是在子类中直接声明一样,可以被子类中自己声明的任何实例方法操作.

2. 所谓子类继承父类的方法作为子类中的一个方法,就象它们是在子类中直接声明一样,可以被子类中自己声明的任何实例方法调用。

(1) Java只支持单一继承,也就是只有一个父类,利用extends 关键字继承;

class A{             }

class B{             }

class C extends A,B{     // 错误的,因为同时继承了两个父类          }

(2)Java中允许多层继承

class A{          }

class B extends A{           }

class C extends B{           }

(3)当子类拥有和父类相同的方法定义(即返回类型、方法名、参数列表完全相同时,仅方法体不一样),称之为方法重写(OverRide);

1对于子类创建的一个对象,如果子类重写了父类的方法,则运行时系统调用子类重写的方法,如果子类继承了父类的方法(未重写),那么子类创建的对象也可以调用这个方法,只不过方法产生的行为和父类的相同而已。

2重写父类方法时不可以降低方法的访问权限

3如果重写了父类的方法后使用父类的被重写方法,可以在子类的方法中使用super.被重写方法();

4子类不继承父类的构造方法

5子类的构造方法必须调用父类的构造方法

6如果子类的构造方法中没有显式地调用父类构造方法,也没有使用this关键字调用重载的其它构造方法,则系统默认调用父类无参数的构造方法,相当于省略了super();语句

7如果子类构造方法中既未显式调用父类构造方法,而父类中只有有参数的构造方法,没有无参的构造方法,则编译出错

8在子类的构造方法中可使用语句super(argument_list) 调用父类的构造方法,但必须作为构造方法的第一条句。

9子类在实例化时实际上先调用父类的构造方法,后调用的子类的构造方法。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2