封装
- 使用private修饰符修饰类的成员变量, 让外部不可以直接对类的成员变量进行读写操作, 防止写入非法数据到对象中
- 针对每一个私有属性提供一组public修饰符修饰的setter和getter方法给外部调用, setter方法的作用是写, getter方法的作用是读
- 在setter方法和getter方法中可以编写读写之前的数据校验, 逻辑判断,格式转换等代码
setter方法有参数, 没有返回值
getter方法有返回值, 没有参数
继承
- 继承发生在两个类之间, 是类与类之间的一种关系, 发生继承的类称为子类, 被继承的类称为父类, 继承的关键字是extends
- 造子类对象的时候, 会同时造出一个父类对象, 并且是先造父类对象, 再造子类对象, 因为类的构造方法中的第一行处, 有一行隐式的 super(); 代表调用其父类的无参构造方法
- 造出来的父类对象存储在子类中的super变量中, 子类可以通过super这个变量访问父类对象中的成员
- 子类可以继承到父类的所有非private修饰的成员变量和成员方法
- 子类不可以继承父类的构造方法, 但可以通过super(); 调用父类的构造方法
- 如果一个类没有继承任何类, 那么这个类默认继承Object类, Object类是官方提供了一个所有类的顶层父类
Java不支持多继承, 但支持多级继承。即一个子类只能有一个直接父类, 但可以有多个间接父类。
多态
编译期多态
通过方法重载实现, 发生在同一个类中, 方法名相同, 但是参数列表不同
运行时多态
通过方法重写实现, 必须要有继承关系, 然后子类重写父类的方法, 在编译期使用父类作为数据类型, 即不确定具体的类型, 在运行时, 由传入的具体对象来确定具体的数据类型