面向对象的三大特征:
对象:只要客观存在的唯一个体
面向对象编程OOP
类:对相同特征事物的描述 静态(变量)动态(方法)
类与对象的关系:
对象是类的具体化
类是对象的模板
修饰符:
权限修饰符:public,protected,default,private
静态修饰符:static
常量修饰符:final
返回值:
- 有返回
所有数据类型
return 具体值;
- 无返回值
void
* 封装、继承、多态
* 封装:将属性或者是方法的访问权限进行限制 private(私有的)
* 当加入private来进行修饰时该属性或者是方法只能在本类中使用,其它类中无法使用
* 需要提供对外访问的get方法还需要提供对外设置值的set方法(编写get方法,方便外界进行访问。编写set方法,方便外界进行赋值)
* 注意:
* 今后在编写Java类时,如果该类中有属性,一定要记得封装
* 将属性私有化,并提供get和set方法
* 继承:
* super表示父类或父类对象
* 1、super.属性名|方法名()表示子类调用父类中可继承的属性和方法
* 2、super()表示子类的构造函数调用父类构造的函数
* this表示当前类或当前对象
* 1、this.属性名|方法名()表示调用当前类的属性或方法
* 2、this()表示构造函数间的调用
* 子类可以对父类中可继承的方法进行重写(覆写、覆盖)
* 前提:
* 继承
* 原则:
* 跟父类中需要重写的方法保持一致
* 方法体可以跟父类不同
* 方法的重载:
* 前提:
* 同名、同类
* 原则:
* 只跟方法的参数个数、类型有关,与其他无关
* 子类继承父类关键字:extends
Java中是单继承
父类的构造函数、私有化都没办法继承
* 子类 extends父类
* 继承了父类以后子类有何特权:
* 父类的属性和方法子类都能继承,就可以直接用
* 当父类的属性和方法不能满足子类需求时,允许子类进行自由扩展
* 优点:
* 1、z减少子类代码量
* 2、提升开发率
多态:事务的多种和形态
* 前提:
继承
* 子类可以向上转型成父类(向上转型成父类跟原有父类是有区别的)
* 子类继承父类的属性和方法,父类都可以调用
* 如果父类中的方法被子类重写,那么调用的是重写过后的方法
* 特征:1、子类向上转型成父类以后,如果父类的方法被子类重写,那么调用的是重写过后的方法
* 2、子类向上转型成父类以后,子类扩展的属性和方法暂时被隐藏,父类不能被调用
* 父类可以向下转型成子类(父类是之前被子类转过的才可以向下转)
* 需要先使用instanceof去进行判定,如果返回true的情况在进行转换,如果返回false不能转换
* 之前隐藏的属性和方法都恢复出来