面向对象编程
面向对象变成的本事是:以类的方式组织代码,以对象的组织(封装)数据
三大特征:
封装
继承
多态
现有对象后有类
方法调用
静态方法不能调用非静态方法
static 是和类一起加载的
实际参数和形式类型的类型要对应
构造器
类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:
- 必须和类的名字相同
- 必须没有返回类型,也不能写void
类是一个模板 抽象
对象是一个具体的实例
封装
程序设计要追求“高内聚,低耦合”
属性私有,get/set
继承
extends的意思是扩展。子类是父类的扩展
在java中所有的类都默认直接或者间接继承Object
Java中只有单继承没有多继承
super
- super调用的父类的构造方法,必须在构造方法的第一个
- super必须只能出现在子类的方法或者构造方法中
- super和this不能同时调用构造方法
对比this
代表的对象不同:
this:本身对象
super:代表父类对象的应用
前提:
this:没有继承也可以使用
super:只能在继承条件才可以使用
构造方法:
this();本类的构造
super();父类的构造
方法重写
需要有继承关系,子类重写父类的方法!
- 方法名必须相同
- 参数列表必须相同
- 修饰符:范围可以扩大: public>protected>Default>private
- 抛出的异常:范围,可以被缩小,但不能扩大:
重写,子类的方法和符类的方法必须要一致,方法体不同
为什么需要重写:
-
父类的功能子类不一定需要或者不一定满足
Alt+Ins
多态
-
多态是方法的多态,属性没有多态
-
父类和子类有联系 ClassCastException
-
存在条件:继承关系,方法需要重写,父类引用指向子类对象 Father f1 =new Son();
instanceof(类型转换) 判断一个类型是什么类型
-
方便方法的调用,减少重复的代码,简洁