Java继承与初始化全过程解析
Java初始化简介 一般来说,在Java中,每个类产生的编译代码都存在于它自己的独立文件中,该文件只有在使用程序代码时才会被加载,也就是说,类的代码只有在初次使用时才加载。但是,如果存在static的话,就不一样了,当访问static字段或static方法时,也会发生加载。最常见的static方法是构造器方法了,虽然没有显示写明static关键字。所以,更准确地讲,Java的类应该是在其任何static成员被访问时加载的。 Java继承的概念 Java面向对象的三大特征是继承、封装、多态。 继承的概念顾名思义,类似父子关系,子继承 父亲。 继承通常被认为是is-a关系,即子类是一个父累,可以这样理解。例如,大黄鸭是一个鸭子。虽然继承是面向对象的一个重大特性,但是对于项目的架构来说,继承应该慎用,常用的模式有组合,组合即一个类中持有另外一个类的对象,例如我们要构造一个汽车时,总要持有发动机、门、窗户、轮子等这些类的具体对象,显然汽车不是一个发动机,也不是一个轮子,它们的关系是has-a的关系,因此需要使用组合模式来设计。在OOP中,使用继承的一个优点是它可以向上转型(upcasting),即子类可以持有父类的方法,或者说子类是一个父类,通过向上转型,进而引出了多态的优点,即当有方法被覆盖时,父类类型的子类对象可以从子类依次向上查找,知道遇到该方法便可调用