<p>复用代码的两种方式:组合和继承。</p> <p>组合语法:对于非基本类型的对象,必须将其引用置于新的类中,但可以直接定义基本类型的数据。</p> <p>继承语法:继承过程需先声明“新类与旧类相似”,使用关键字extends实现该声明。子类会继承父类的所有域和方法。</p> <p>为了继承,一般的规则是将所有的数据成员都指定为private,将所有的方法指定为public。</p> <p>用关键字super表示父类对象的引用,可以通过super操作父类。</p> <p>在构造器中调用父类构造器来执行初始化,父类构造器具有执行父类初始化所需要的所有知识和能力。java会自动在子类构造器中插入对父类构造器的调用。如果没有默认的父类构造器,或想调用一个带参数的父类构造器,就必须用关键字super显示的编写调用父类构造器的语句,并配以适当的参数列表。使用super关键字调用父类构造器必须是子类构造器中的第一行代码。</p> <p>除内存以外,不能依赖垃圾回收器去做任何事情,如果需要进行清理,最好编写自己的清理方法,但不要使用finalize()方法。清理的方法放在finally{//清理方法}代码块中,保证在任何情况下都会被执行。</p> <p>@Override注解可以防止你在不想重载的时候意外获得重载</p> <p>判断使用组合还是继承的一个清晰方法是:是否需要从子类向父类进行向上转型。如果必须向上转型,则继承是必要的,但如果不需要,则应当考虑组合。</p> <h3>final关键字</h3> <p>在java中常量必须是基本数据类型,并且以关键字final表示,对常量进行定义时,必须对其赋值。对基本数据类型,final使数值恒定不变,而用于引用,final使引用恒定不变。一旦一个引用被初始化指向一个对象时,就无法再改为指向另一个对象。而对象其自身是可以改变的。</p> <p>声明final的方法不能被覆盖,声明为final的类不能被继承。在设计类时,将方法设为final是个明智的选择。</p>
转载于:https://my.oschina.net/u/932901/blog/101624