继承弊端:打破了封装性。
解决方式:关键字final (最终的)。
final关键字的特点:
1,final是一个修饰符,既可以修饰类,又可以修饰方法,还可以修饰变量。
2,final修饰的类不可以被继承。
3,final修饰的方法不可以被覆盖。
4,final修饰的变量是一个常量,只能赋值一次。
final应用场景:
(1)为了将固定的一些数据方便使用,会给这些起一个容易阅读的名称,
(2)为了防止名称存储的数据改变。用final修饰。
(3)一般为final修饰的变量名称都是大写字母组成,如果有多个单词,每个单词之间用下划线分隔。
final其实就是其他语言中的const 。
例子:
对象内存初始化:
一个对象在内存中的产生过程: |
(1)将该对象所需的类文件加载进内存。 |
(2)在内存进行空间的方法区的空间分配。 |
(3)通过new在堆内存中开辟空间。 |
(4)对象中的属性进行默认初始化。 |
(5)调用与之对象的构造函数进行初始化。 |
(6)通过构造函数的super调用父类中的构造函数初始化。 |
(7)对象中的属性进行显示初始化。 |
(8)构造代码块初始化。 |
(9)该构造函数内部自定义内容进行初始化。 |