Thinking in Java 第六章“复用类”要点总结

1。组合语法composition和继承inheritance

不声明继承就默认继承Object类。与前面的单根继承对应。

成员缺省的访问权限是package。

2.在同一个java文件里面,可以存在多个main函数(在不同的类中),但是不能出现多个public类。

这样让测试单元更加清晰、容易。

main函数还可以互相调用:因为main函数是个public static void main(String[] args)。

3.super代表当前类所继承的基类

导出类构造器中的super构造器必须在第一行。

4.初始化顺序:基类、导出类

如果都是缺省构造器,那么会自动按这个顺序调用

如果是有参数的构造器,那么你必须显示调用。super(args)

5.保证正确清除

想要显式清除某样东西,可以把清除语句放在finally中

try语句块是一个guarded region(保护区),无论try块如何退出,都要执行finally中的代码

最好不要依赖垃圾处理器去做任何事,需要清楚最好写自己的方法,不要使用finalize()方法

6.同名的方法,但是参数表不同,导出类的方法不会覆盖基类的方法。

7.增量开发

8.向上转型upcasting

9.final关键字

final对原始类型运用时就是数值不变;而对对象运用时就是引用不变,但是对象可以改变。

static最主要的一点是只有一份,而且是在装载的时候就有了。装载器的forName()方法。

将final运用在对象上没有把final运用在原始类型上的作用大

将final用在空白的变量上也可以,但是必须在每个构造器中都给他赋值。

final可以用在参数列表中,代表无法修改。

final方法:1.不会被重载  2。会变为内嵌inline形式,可以省去调用方法的时间,但是会让代码变得膨胀

类中所有的private方法都被默认为final的,如果方法是private那么他就不是基类接口的一部分,你所创建的同名方法并不是重构而是完全的一个新方法。所以将导出类upcasting也无法调用基类的private方法。

final类:永远无法变动的类。无法被继承

10.类加载

先加载父类再加载子类,先创建父类对象再创建子类对象。

https://blog.csdn.net/fisherwan/article/details/28595399

猜你喜欢

转载自blog.csdn.net/weixin_38967434/article/details/82110559