java的三大特性:封装,继承,多态
先来说一说封装和继承吧
封装:就是隐藏类的内部实现机制,在不影响使用的情况下改变类的内部结构,保护了数据,对外界来说具体的是实现细节是看不到的,暴露给外部的只是它的访问方法。
继承:如果两个类存在“is-a”的关系,则可以使用继承的关系,子类想要重用父类的方法,这样就引出了多态
多态:多态就是一个对象具有多种形态,就是父类的引用类型变量指向子类的对象或者接口的引用类型变量指向接口实现类的对象,使用前提的必须存在继承和实现关系,
简单来说就是,一个引用变量到底指向哪个类的实例对象和这个引用变量所调用的方法到底是哪个类的,必须在程序运行期间才能决定。这样不需要修改源代码就可以改变程序运行时
所绑定的代码,让程序具有多个运行状态,这就是多态性。
多态的条件:继承,重写,向上转型
1.继承:必须存在子类和父类的继承关系
2.重写:子类需要重写父类的方法,并且必须是非静态的,这样在调用方法时才会访问子类重写的方法
3.向上转型:在多态中需要将子类的对象赋值给父类的引用,这样才能调用父类的方法和子类的方法
但是向上转型也存在弊端,不能访问子类特有的方法了。
多态要注意的细节:在多态情况下,子父类存在同名的成员时,访问的是父类的成员,只有在同名非静态的方法时访问的才是子类的方法。
多态的应用:
1.多态用于形式参数类型的时候,可以接收更多类型的数据
2.多态用于返回值类型的时候,可以返回更多类型的数据。
记录一个菜鸟程序媛的奋斗过程