最近在准备跳槽,记录一下学习成果。从头开始💪 1、如何理解面向过程和面向对象。 面向过程和面向对象都是一种编程的思维模式,开发者按照一定的行为规范去开发。面向过程是步骤化的,将目标拆分成一个个步骤去实现,可以通过顺序调用函数达到目的。而面向过程则是行为化的,将目标根据其中的共性等划分封装成类,实例成对象。基于对象及对象的能力进行业务逻辑的实现。 面向过程的实现效率比较高,但是可维护性差,复用性差,开发效率较低,拓展能力差,维护成本高。 面向对象结构清晰,容易扩展,代码重用性高,支持继承和重写等。但是效率比较低。
2、为什么Java不支持多继承。 多继承会出现菱形继承的问题,比如C++,为了解决菱形继承,又引入的虚继承。同时,多继承提高了程序的复杂性,如果业务比较复杂的话,会使接口变得很庞大,而且修改父类的代码,可能会影响范围比较广较。所以Java不允许继承。但允许实现多个接口,Java8以后,接口可以定义默认方法,为了避免菱形继承的问题,Java要求实现的接口中如果有同名的默认方法,必须重写该方法。 3、接口和抽象类区别,如何选择。 最明显的区别就是接口中只是定义了一些方法,没有实现,除了Java8以后的默认方法,而抽象类中有具体实现。接口中默认的修饰符是public,不能用其他的,而抽象类中可以使用其他修饰符。接口的主要功能是定制规范。而抽象类的主要目的是复用。 4、多态。 大概就是同一个操作。作用于不同的对象,可以有不同的解释,产生不一样的执行结果。多态需要满足3个条件,1、必须要有继承或者实现接口。2、必须重写父类的方法。3、父类引用指向子类对象。 5、基本类型和包装类。 有8个基本类型,对应就有8个包装类。Java是面向对象程序设计。所以很多地方要使用对象而不是基本数据类型。比如list中就无法添加基本数据类型的数据。因为集合容器中要求的元素是Object。