java面向对象有三大特征:封装、继承、多态
封装:就是将数据和行为组合在一个包中,并对对象的使用者隐藏具体实现方式。
1、实例字段:对象中的数据
2、方法:操作数据的过程
3、对象的状态:特点对象有一组特定的实例字段值,这些值的集合就是这个对象的当前状态
好处:属性的封装-限制对属性的不合理操作
方法的封装-便于使用;便于修改,增强代码的可维护性。
继承:基于已有的类创建新的类。继承一个类就是可以复用这个类的方法和字段,而且可以增加一些新的方法和字段。
父类通过private定义的变量和方法不会被继承,不能在子类中直接操作父类通过private定义的变量及方法。
---java中不支持多继承,但是可以通过接口来实现。
多态:基于继承,指父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或者表现出不同的行为,使得同一个属性在父类及其子类中具有不同的含义。
简单的说:
多态是指同一种行为或操作,对于不同的对象,可以有不同的表现形式。
java实现多态有3个必要条件:继承,重写和向上转型。
继承:在多态中必须存在有继承关系的子类和父类。
重写:子类对父类某些方法进行重新定义,在调用这些方法时就会调用子类的方法。
向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才既能可以调用父类的方法,又可以调用子类的方法。
补充:
重载是指在同一个类中定义多个方法,它们具有相同的名称但参数列表不同。编译器会根据调用方法时传递的参数类型和数量来决定具体调用哪个重载方法。重载是一种编译时多态,在编译阶段根据方法的签名进行静态绑定,也被称为静态多态性。
重写是指在子类中重新实现父类的方法,子类可以提供自己的实现逻辑。重写是一种运行时多态,在运行时根据对象的实际类型进行动态绑定,也被称为动态多态性。
⾯向对象因为有了封装继承多态的特性,可以设计出低耦合的系统,使得系统更灵活、容易 维护。