关于在编程中是否使用继承:在面向对象的编程中,判断是否需要使用继承时,就问一下你是不是需要把新类向上转型为基类,如果你必须向上转型,那么继承就是必须的,如果不需要,那么就该再看看是不是应该用继承了。
Final关键字:(final表示不变,static表示只有一个)
Final的数据:final修饰的数据称为常量。常量能用于下列两种情况:
1、可以是“编译时的常量”,这样就再也不能改了。
2、可以是运行时初始化的值,这个值你以后就不想再改了。
如果是编译时常量,编译器会把常量放在算式里面,这样编译的时候就能进行计算。在java中这种常量必须是基本类型的,这种常量的赋值必须在定义的时候进行。一个既是static又是final的数据成员会只占据一段内存,并且不可修改。
当final是用于对象的引用的时候,final的意思是这个引用是常量。初始化时,一旦将引用连接到了某个对象,那么它就再也不能指向别的对象了,但是这个对象本身是可以修改的。(引用是常量,不能指向其他的对象,但是对象本身还是可以修改的)。你一定得为final数据赋值,要么是在定义数据的时候赋值,要么是在构造函数里面进行赋值。为了确保final数据在使用之前已经进行了初始化,这一要求是强制性的。
Final的参数:java允许在参数表中声明参数是final的,这样就代表你可以读该参数,但是不能修改。
Final方法:
在java中final修饰的方法子类不能覆盖。当你希望某个方法的功能能再继承过程中被保留下来,并且不被覆写,就可以使用final关键字来修饰该方法。
final和private:private方法都隐含有final的意思。由于你不能访问private的方法,因此你也不能覆写它。
Final类:把整个类都定义为final的就等于在宣布,你不会去继承这个类,你也不允许别人去继承这个类。即是说一旦用final关键字修饰类之后,该类就不能再被继承。
初始化和类的装载:编译之后每个类都保存在它自己的文件里。不到需要的时候,这个文件是不会装载的。总之你可以说”类的代码会在它们第一次时候的时候装载“。类的装载通常都发生在第一次创建那个类的对象的时候,但是访问static数据或者static方法的时候也会装载。
第一次使用static数据的时候也是进行初始化的时候。装载的时候static对象和static代码段会按照他们字面的顺序进行初始化。当然static数据只会初始化一次。