面向对象 面试题

1.==/equals有什么区别?

== 比较两个对象的地址是否是同一个

equals 比较两个对象的值是否相等

2.深拷贝与浅拷贝的区别(常问)

浅拷贝并不打引用链的所有对象拷贝一份,而是把引用地址拷贝一份

深拷贝则是把引用链的所有数据都拷贝一份

3.接口和抽象类有什么区别?联系?

接口 interface 代表一种功能 约定

最初 interface 不能有实现(方法体)

Java8+之后可以default方法体

a. interface 定义功能,只能包含方法(实现)不能包含成员变量。可以被实现若干次

b. Abstarct Class:定义抽象的骨架实现,可以包含抽象方法或者具体实现,也可以包含成员变量,只能沿着一条路径继承

c. 什么时候用接口?什么用抽象类?
如果想要类有成员变量就用抽象类。如果定义一个功能时候,接口更加灵活。

4. final的作用是什么?

a.修饰类与方法,代表该类不可继承。声明的是不可继承性

b.修饰变量时,代表该变量不可修改,声明的是不修改性

5. Override和Overload有什么区别?

本质上没什么关系

同方法的参数不同(Overload 重载)横向

Override(重写),覆盖父类的方法,但是参数一样

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。