前言
当类之间产生了关系,其中各类中的构造方法,又产生了哪些影响呢?
一、继承
1.什么是继承: 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
2.继承的好处:共性抽取(多个类中相同的代码),提高代码的复用性。
3.继承的特点:
a.一个子类只能有一个直接父类。Java是单继承
b.Java是多级继承
c.一个父类可以有多个子类
4.如何实现继承:
public class 子类 extends 父类{
//子类继承了父类,则可以使用父类中的非private修饰的成员信息
}
二、构造方法
构造方法:是一种特殊的方法,它是一个与类同名的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。
构造方法是一种特殊的成员方法,它的特殊性反映在如下几个方面:
1.构造方法作用:(1).构造出来一个类的实例 (2).对构造出来个一个类的实例(对象)初始化。
2.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。
3.主要完成对象的初始化工作,构造方法的调用是在创建一个对象时使用new操作进行的。
4.类中必定有构造方法,若不写,系统自动添加无参构造方法。接口不允许被实例化,所以接口中没有构造方法。
5.不能被static、final、synchronized、abstract和native修饰。
6.构造方法在初始化对象时自动执行,一般不能显式地直接调用.当同一个类存在多个构造方法时,java编译系统会自动按照初始化时最后面括号的参数个数以及参数类型来自动一一对应。完成构造函数的调用。
7.构造方法分为两种:无参构造方法 有参构造方法
8.构造方法可以被重载。没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象的属性。
三、继承关系下构造方法的访问特点
1.在子类的构造方法中,如果没有显示的写super(参数),则默认赠送一个super();
2.如果显示的写了super(参数),则不再赠送。
3.super(参数),必须是第一个语句。
4. 在创建子类对象的时候,一定会调用父类的某个构造方法。
super关键字三种用法:
1. super.父类的成员变量
2. super.父类的成员方法
3. super(参数);//调用父类的构造方法,只能在子类的构造方法调用。
this关键字的三种用法:
1. this.本类成员变量
2. this.本类成员方法
3. this(参数);//调用本类的其他构造方法
a.必须写在构造方法中
b.必须是第一个语句,this(参数)和super(参数)不能同时存在
c.写了this(参数),之后不再赠送super();
d.构造方法不能递归
总结
在子类构造方法中,不管是手动调用父类构造方法还是编译器自动调用,子类构造方法必须要调用父类的某个构造方法;被子类调用的父类构造方法在父类中必须是存在的;