1.面向对象和面向过程的区别
面向过程
优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资
源;比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发,性能是最
重要的因素。
缺点:没有面向对象易维护、易复用、易扩展
面向对象
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,
可以设计出低耦合的系统,使系统更加灵活、更加易于维护
缺点:性能比面向过程低
2.Java 的四个基本特性(抽象、封装、继承,多
态)
抽象:就是把现实生活中的某一类东西提取出来,用程序代码表示,我们通常叫
做类或者接口。抽象包括两个方面:一个是数据抽象,一个是过程抽象。数据抽
象也就是对象的属性。过程抽象是对象的行为特征。
封装:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的
类或者对象操作,对不可信的进行封装隐藏。封装分为属性的封装和方法的封装。
继承:是对有着共同特性的多类事物,进行再抽象成一个类。这个类就是多类事
物的父类。父类的意义在于抽取多类事物的共性。
多态:允许不同类的对象对同一消息做出响应。方法的重载、类的覆盖正体现了
多态。
3.重载和重写的区别
重载:发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不
同,方法返回值和访问修饰符可以不同,发生在编译时。
重写:发生在父子类中,方法名、参数列表必须相同,返回值类型小于等于父类,
抛出的异常小于等于父类,访问修饰符大于等于父类;如果父类方法访问修饰符
为 private 则子类中就不是重写。