JavaSe学习总结_代码块、继承与制作API篇

(一)代码块:在Java语言,用{}括起来的内容,简称为代码块

1 代码块的分类:

1.1 局部代码块:书写的位置,是在方法中定义的{代码...}

作用:限定变量的生命周期的

1.2 构造代码块:在类的成员位置,每次在执行构造方法之前,如果当前类中有构造代码块,优先执行构造代码块,再执行构造方法

作用:如果多个类的构造方法中有共有的内容,可以将抽取到构造代码块中

1.3 静态代码块:在类的成员位置,在{} 外面被static,静态代码块

作用:优先于对象存在,静态代码块只执行一次,优先执行

2 静态代码块、构造代码块、构造方法之间的优先级:静态代码块>构造代码块>构造方法

代码:

JavaSe学习总结_代码块、继承与制作API篇

运行结果:

JavaSe学习总结_代码块、继承与制作API篇

(二)继承

代码:

JavaSe学习总结_代码块、继承与制作API篇

JavaSe学习总结_代码块、继承与制作API篇

运行结果:

JavaSe学习总结_代码块、继承与制作API篇

1 格式:class 子类名(派生类) extends 父类名(超类){}

2 继承的好处:

a 提高代码的复用性

b 后期利于维护

c 继承关系是多态的前提

3 继承的特点:只支持单继承,不支持多继承,但是可以支持多层继承

4 注意事项:

a 子类继承父类,只能继承父类的非私有的成员变量和成员方法

b 子类不能继承父类的构造方法,只能通过super()间接的去访问父类的构造方法

c 不要了部分功能去使用继承(当A类是B类的一种,能体现出是一种”is a”的关系,则使用继承)

5 super关键字:可以间接父类的构造方法

6 this关键字和super关键字的应用场景:

6.1 成员变量

this.成员变量

super.成员变量

6.2 构造方法

无参:this();super() ;

有参:this("..");super("..");

7 如果父类的无参构造方法没有给出,子类的构造方法会报错?如何解决?

会报错,解决方法:

a 手动给出父类的无参构造

b 间接的通过super(…)访问父类的有参构造

c 通过this():访问本类中的无参构造方法,再通过本类无参构造方法里面第一个语句super(…)访问父类的有参构造

8 关于继承中成员变量的访问特点?

8.1 子类继承父类,如果他们的成员变量名称不一致:分别输出;

8.2 如果成员变量名称一致:

a 首先,在子类的局部位置中找,有就输出;

b 没有,在子类的成员位置找,有就输出;

c 还没有,直接在父类的成员位置中,有就输出;

d 如果没有,就会报错

9 继承中的成员方法访问特点:

a 当成员方法名称不一致的时候,分别调用

b 当成员方法名称一致的情况,首先在子类中查看,如果有,就调用;如果没有,就调用父类的成员方法;

10 overload(方法重载)和overread(方法重写)区别:

override(继承):当子类出现了和父类一模一样的方法的时,子类的方法会重写父类的方法,调用的子类的功能

overload(方法):在方法中,多个方法名相同,且参数列表不同

11 final关键字:被final修饰的类、变量、成员方法不能被直接继承、覆盖

(三)制作API

代码:

JavaSe学习总结_代码块、继承与制作API篇

JavaSe学习总结_代码块、继承与制作API篇

DOS命令:

JavaSe学习总结_代码块、继承与制作API篇

结果:

JavaSe学习总结_代码块、继承与制作API篇