Java基础知识
如何理解Java的多态?其中,重载和重写有什么区别?
多态是同一个行为具有多个不同表现形式或形态的能力,多态是同一个接口,使用不同的实例而执行不同操作。多态就是程序运行期才确定,一个引用变量到底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法。
多态存在的三个必要条件是:继承,重写,向上转型(需要将子类的引用赋值给父类对象,只有这样该引用才能具备调用父类的方法和子类的方法)
。
多态的三个实现方式:重写、接口、抽象类和抽象方法
。
继承链中对象方法的调用优先级:
1 |
|
区别点 | 重载 Overload | 重写 Override |
---|---|---|
参数类型 | 必须修改 | 不能修改 |
返回类型 | 可以修改 | 不能修改 |
异常 | 可以修改 | 可以减少或删除,一定不能抛出新的或者更广的异常 |
访问 | 可以修改 | 一定不能做严格的限制 |
面向对象编程四大特性及含义
- 抽象:对现实世界的事物进行概括
- 封装:将某事物的属性和行为包装到对象中,构成一个不可分割的实体,数据被保护在抽象数据类型的内部。只保留一些接口使之与外部发生联系。
- 继承:子类继承父类,不仅可以有父类原有的方法和属性,也可以增加自己或者重写父类的方法及属性。
- 多态:允许不同类的对象对同一消息作出的各自响应。
Object的
equals()
和==
的区别
equals()
:Object的公有方法,默认情况下是引用比较,不过有些类对其进行了重写,大部分是进行值比较。
==
:针对不同的类型,会有不同的比较方式
- 基本类型:比较值是否相同
- 引用类型:比较引用是否相同即内存地址是否相同
面向对象技术四大主题
- 封装:把数据和行为封装到单个对象中,对象中既包含自身的数据以及行为,并且可以向其他对象隐藏自己的某些数据及行为。
- 继承:子类继承父类,不仅可以有父类原有的方法和属性,也可以增加自己或者重写父类的方法及属性
- 多态:相似的对象对相同的消息有着不同的响应。
- 组合:使用其他对象来构建新对象
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!