面向对象一些面试题汇总

tech2024-10-24  23

接口和抽象类区别

抽象类:用abstract修饰,可以有普通方法和抽象方法,可以有变量,可以有构造方法,单继承 接口:用interface修饰,所有方法都是抽象方法,只能有final static修饰的全局常量,无构造方法,多实现 共同点:都不能通过new实例化对象

构造方法能否被重写

不能,子类和父类类名不同,而构造器和类名是同名的,故构造器不能继承,由于不能继承,故不能重写

==和equals的区别

基本数据类型:= =比较两者值是否相同 引用数据类型:= =比较两者地址是否相同,equals比较二者值是否相同,在比较引用数据类型时,通常需要重写equals方法

拆箱和装箱

装箱:基本数据类型转换成包装类 拆箱:包装类转换成基本数据类型

重载和重写需要满足的条件

重载:同一个类中,方法名相同,参数不同 重写:子类继承父类中的方法,方法名,返回值类型,参数均相同,修饰权限不能低于父类

final,finally,finalize的区别

final是定义类,方法,变量的关键字,定义类时不能被继承,定义方法时不能重写,定义变量时为常量 finally是异常处理的一个关键字,表示内容一定会执行 finalize是Object的一个类,垃圾回收器执行时起作用

abstract方法是否能是静态的,能否是synchronized

都不可以,抽象方法只有声明没有实现,static是直接运行的,抽象类运行无意义 而synchronized是同步锁,而同步只有具体操作才能实现

接口是否能继承接口,抽象类是否可实现接口,抽象类是否可继承实现类

接口可继承接口,抽象类可继承接口,抽象类可继承实现类 但实现类必须要有构造方法

try中有return时finally会不会执行,何时执行

finally会执行,在return之前执行

面向对象特征

封装:将各种逻辑私有,仅对外留一个公共的接口供使用 继承:子类可以使用父类的非私有方法和属性并进行扩展 多态:不同对象可以对同一个消息作出响应

int和Integer的区别

int是基本数据类型,默认0 Integer是int的包装类,属于引用数据类型,默认null

静态变量和实例变量

静态变量用static修饰,属于类的变量,加载类时读取 实例变量没有static修饰,属于对象的变量,加载类时不读取

对象持久化的含义,为何要对象持久化

对象持久化值将对象保存到数据库或文件中,方便用户使用

final的用处

修饰类:不可被继承 修饰方法:不可重写 修饰变量:常量

访问修饰符的区别

能否publicprotectdefaultprivate类truetruetruetrue包truetruetruefalse子类truetruefalsefalse不同包truefalsefalsefalse
最新回复(0)