一:封装

  1. 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是**通过该类提供的方法来实现对隐藏信息的操作和访问,常见的实现方式就是:gettersetter。**<br />** **封装遵循了“开闭原则”,禁止外部直接访问和修改类的信息。<br /> 成员变量以及方法作用域(可见性)——defaultprivateprotectedpublic<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/2185769/1614931944835-a2f62ad5-1c2a-4065-b653-adf5606ec488.png#align=left&display=inline&height=308&margin=%5Bobject%20Object%5D&name=image.png&originHeight=308&originWidth=456&size=83420&status=done&style=none&width=456)

二:继承

继承是类与类的一种关系,子类拥有父类的所有属性和方法(除了private修饰的属性不能拥有)从而实现了实现代码的复用。
继承与实现的区别
1)概念不同
继承:子类与父类的继承。如果多个类的某个部分的功能相同,那么可以抽象出一个类出来,把他们的相同部分都放到父类里,让他们都继承这个类。
实现:接口的实现。如果多个类都有一个行为,但是处理的方法方式不同,那么就定义一个接口,也就是一个标准,让各个类分别实现这个接口,各自实现自己具体的处理方法。
2)关键词不同
继承:extends,实现:implements
3)数量不同
单继承,多实现。
4)属性不同
在接口中只能定义全局常量(static final),和空的方法体;而在继承中可以定义属性方法,变量,常量等…
5)限制不同
某个接口被类实现时,在类中一定要实现接口中的抽象方法;而继承则无需。

三:多态

Java中的多态主要指引用多态和方法多态。
引用多态是指:父类引用可以指向本类对象,也可指向子类对象。引用多态的强大主要体现在调用属性、方法时,可以根据引用具体指向的对象去调用,例如:子类中重写了父类方法。
方法多态:子类中可以重写父类的方法,在调用方法时根据引用指向的子类对象决定调用哪个具体的方法。方法多态的强大主要体现在可以根据调用时参数的不同,而自主匹配调用的方法,例如:重载。

方法重写与重载的区别:
重写:一般发生在有继承关系的子类中,子类中定义了一个方法,其
方法名、返回值类型、参数列表 与父类中某个方法一样,此时就是子类中重写(覆盖)了父类的同名方法。
父类引用调用方法时,根据引用指向的对象决定调用父类定义的方法还是子类定义的方法,这体现了多态。
重载:发生在同一个类中,存在 多个方法的
方法名相同,但是参数列表不同。参数列表不同指的是参数个数、参数类型或者参数的顺序**不同。
调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法,这也体现了多态。