文
章
目
录
章
目
录
Java面试题:谈谈你对OOP面向对象的理解?
得分点:
封装、继承、多态
标准回答: 面向对象编程的三大基本特征包括封装、继承和多态。其中,封装指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息。外部程序必须通过该类提供的方法来实现对内部信息的操作和访问。这种做法有助于规范使用者的行为,让使用者只能通过事先预定的方法访问数据,从而提高了代码的可维护性。继承是一种实现代码复用的重要手段,Java使用关键字extends来实现类的继承。在继承中,实现继承的类被称为子类,而被继承的类称为父类(有时也被称为基类或超类)。继承表现出一种一般和特殊的关系。多态的实现离不开继承。在程序设计中,我们可以将参数的类型定义为父类型。然后,在调用程序时,可以根据实际情况,传入该父类型的某个子类型的实例,从而实现多态。父类型可以是普通类、抽象类或接口。对于子类型,根据其自身特征,可以重写父类的某些方法或实现抽象类/接口的某些抽象方法。
加分回答:
封装的优点包括:
- 隐藏类的成员变量和实现细节,不允许外部直接访问。
- 规范使用者的行为,通过方法来限制对成员变量的访问,增加逻辑控制。
- 可进行数据检查,有助于保证对象信息的完整性。
- 便于修改,提高代码的可维护性。
使用继承的优点包括:
- 代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性,提高了代码复用性。
- 提高了代码的可扩展性,允许通过继承来扩展或修改父类的功能。
然而,继承也有一些缺点,包括:
- 继承是侵入性的,子类必须拥有父类的所有属性和方法。
- 继承降低了代码的灵活性,子类必须继承父类的属性和方法。
- 继承增强了耦合性,当父类的常量、变量和方法发生变化时,可能需要修改子类,导致大段代码的重构。
多态的优点包括:
- 提高了代码的维护性,允许通过改变对象的实际类型来实现不同的行为。
- 提高了代码的扩展性,允许添加新的子类而无需修改现有代码。
要在Java中实现多态,需要满足三个条件:
- 存在继承关系。
- 存在方法的重写。
- 父类的引用可以指向子类的对象。