面向过程:面向过程比面向对象的性能高。因为类调用是需要实例化,开销比较大、比较消耗资源、所以当性能是最重要的考量因素时一般采用面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展 面向对象:面向对象易维护、易复用、易扩展。因为面向对象有封装、继承、多态性的特性,所以设计出低耦合的系统、是系统更加灵活、更加易于维护。但是,面向对象性能比面向过程低
构造器Constructor是否可以被override?面向过程也需要分配内存,计算内存偏移量,Java性能差的主要原因并不是因为他是面向对象语言,而是JAVA是半编译语言,最终执行代码并不是可以直接被CPU执行的二进制机械码。
而面向过程语言大多是直接编译成机械码在电脑上执行,并且其他一些面向过程的脚本语言性能也并不一定比Java好。
Constructor不能被override,但是可以overload,所以你可以看到一个类中有多个构造函数的情况。
Java中定义一个空构造方法的作用Java程序在执行子类的构造方法之前,如果没有用super()来调用父类特定的构造方法,则会调用父类中“没有参数的构造方法”。因此,如果父类中只定义了有参数的构造方法,而在子类的构造方法中又没有用super()来调用父类中特定的构造方法,则编译时将发生错误,因为Java程序在父类中找不到没有参数的构造方法可供执行。解决方法是在父类中加上一个空构造方法。



