(声明:下面内容是我对黑马程序员java面试资料的一些总结和个人看法)
一:java面对象
1.面向对象都有哪些特性
1)继承:从已有类得到继承类信息创建新类的过程。父类和子类。
2)封装:将数据与方法(操作数据的方法)绑定起来,对数据的访问只能通过已定义的接口。
可以说,封装就是隐藏一切可隐藏的东西,向外界只提供简单的接口。
3)多态:不同子类型对象对同一信息的不同响应。用同样的对象引用调用同样的方法但做了不同的事情。
方法重载(overload):编译时的多态,方法名相同,但参数不同。方法内容不同;
方法重写(override):运行时的多态,方法名,返回值类型,参数相同。方法内容不同:
4)抽象:将一类对象特征总结出来构造的过程,只关注属性与行为,并不关注行为的细节。编程的开始。
2访问权限public,private、default,protected(记这张图就行了)
3为什么要用Clone
在编程过程中,有一个对象在某一时刻包含了有些有效数据,此时就需要复制一个与A相同的B(要满足这种需
求虽然有很多途径,但实现 clone()方法是其中最简单;不过我们不能直接调用clone()方法,因为他的权限是protected)
一般的Clone是浅拷贝,(可以百度在看看浅拷贝与深拷贝)