构造方法/构造函数
1.格式:没有返回值类型,且与本类类名的方法
2.作用:用于创建对象
3、执行时机:每次创建对象时都会执行构造方法
4.1无参构造:默认存在,但是一旦提供了其他的构造函数
默认的无参构造会被覆盖掉,所以注意手动提供
4.2,含参构造:
含有参数的构造方法
4,.3全参构造:
参数列表与本类所有属性一样
创建对象&给属性的所有属性赋值
构造代码块:
位置类里方法外
执行时机:每次创建对象时执行,并且优先于构造方法执行
作用:用于提取所用构造方法的共性功能
局部代码块:位置方法里
执行时机:调用本局部代码块所处的方法时执行
作用:用于控制变量的作用范围
执行顺序:构造代码块–构造方法—普通方法–局部代码块
this的用法
1.当本类的成员变量与局部变量同名时,使用this.成员变量名指定成员变量
2.this();–调用本类的无参构造
this(参数);–调用本类的含参构造
注意:必须写在第一行
不能来回调用,是单向的
super的用法
1.当父类的成员变量与子类的变量同名时,使用super指定父类的成员变量
2.使用super在子类构造方法的第一行调用父类构造方法的功能
super().调用的是父类的无参构造
super(参数);调用的是父类对应参数的构造方法
6.继承
1.继承的关键字extends格式:子类extends父类
2.继承相当于子类把父类的功能复制一份
3.java只支持单继承:一个子类只能有一个父类,一个父类可以有多个子类
4.继承具有传递性:爷爷的功能会传给爸爸,爸爸的功能会儿子
5.子类只可以使用父类的非私有资源,私有资源由于private限制,不可用
6.子类可以拥有自己的特有功能、
7.继承是is a强耦合的关系,依赖性非常强,比如我们看到"熊孩子",就知道他有一个"熊父亲"
7.继承中的构造方法
1.子类在创建对象时,默认会先调用父类的构造方法
2.原因是子类构造函数中的第一行默认存在super();-表示调用父类的无参构造
3.当父类没有参数构造时,可以通过super(参数);调用父类的其他含参构造
注意:子类必须调用父类的一个构造函数,不论是无参还是含参,选一个即可
4.构造方法不可以被继承因为语法原因,要求构造方法的名字必须是本类类名不能在子类中出现一个父类名字的构造方法