2018.9.17学习笔记(代码块,继承,super,final)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Haidaiya/article/details/82756500

1 代码块

(1)局部代码块

当代码块执行结束,内存就释放了,作用不多。

(2)构造代码块

构造代码块直接在类中写,并且每创建一次对象就执行一次,而且优于构造函数执行。

(3)静态代码块

随着类的加载而加载,并且只执行一次。

2 继承

好处:继承提高了代码的复用性,提高了代码的维护性。让类与类之间产生了联系,继承是多态的前提。

弊端:增加了耦合性,但是开发原则是高内聚,低耦合。、

JAVA继承的特点:只支持单继承,不支持多继承,但是它支持多层继承,不能继承父类的构造方法

3 super关键字

之前讲述过this代表的是当前的对象,super代表的是父类的对象。

4 继承时构造方法的问题

上面继承的特点解释到,子类不能继承父类的构造方法,但是它默认访问父类的空参构造,在子类的构造方法中会加上super()语句。

上图需要解释一下,父类Father中有空参构造和有参构造,子类Son中也有空参构造和有参构造,那么当创建Son对象时,默认会先执行父类的空参构造,注意这里是空参构造,无论子类是用空参构造还是有参构造。所以上图super(name,age)应该是super()。但是当父类没有空参构造的时候,在子类中为了不报错,就只能用父类的有参构造,所以需要写super(name,age)

5 继承面试题

(1)简单

主函数Test_Extends,执行第一句时,先访问父类的空参构造,输出“fu”,再输出“zi”,调用show()方法,输出30,20,10

(2)难

6 继承中的成员方法(方法重写)

7 final

string类就是final修饰的,所以它不能被继承。

final:最终的,不可修改的,常量要求所以字母大写。

final的一般用法:

当final修饰一个引用类型(比如Person p),那么p中存储的地址值就不能改变了。

猜你喜欢

转载自blog.csdn.net/Haidaiya/article/details/82756500