三大特性:封装、继承、多态
封装
封装属性:
1,私有化成员变量
2,提供get,set方法
3,在方法的内容加入控制语句
static静态
修饰:成员属性、方法、代码块
static成员属性
静态变量,全局变量
static成员代码块
用于初始化静态变量
static成员方法
静态方法
同一类中,在静态方法中只能调用成员变量、方法
static成员代码块
用于初始化静态变量
方法重载
为什么要重载?同一个对象,做同一件事,条件不同,结果也不同
在同一类中,方法名相同,独一无二的参数列表(数量、类型、顺序、意义),与访问修饰符和返回值类型无关,方法体不同
继承
1具有单根性,一个类只能有一个父类,
2一个类可以被多个类继承
3可以有多层继承,A被B继承,B被C继承
4子类继承父类所有的成员变量和成员方法。除(private)
5子类可以继承父类的方法,并且可以重写父类的方法。
6父类构造函数不能被继承。可以使用super调用父类的构造函数。
7.如果子类的构造方法中没有显式地调用父类构造方法,也没有用this 关键字,则在产生子类的实例对象时,系统默认调用父类无参数的构造方法。
super、this
在子类中,this代表当前子类对象,super代表父类对象
抽象类 非完全抽象
abstract
不具体的类,不能实例化
作用:让子类继承
抽象方法
不具体的方法,没有方法体
让子类来实现方法体
final 最终的
修饰:变量、方法、类
final 变量:常量,只能赋值一次
final int i=6; 值不能变
final Son son=new Son();
son 不能指向别的对象 但son.name="asd";对象的属性值可变
final 方法:不能被重写的
final 类:不能被继承的
重写
位置:父子类中
方法名、参数列表、返回值类型相同
访问修饰符不能比父类更严格
方法体不同
位置 | 访问修饰符 | 返回值类型 | 方法名 | 参数列表 | 方法体 | |
方法重载 | 同一类中 | 无关 | 无关 | 相同 | 独一无二 | 不同 |
方法重写 | 父子类中 | 必能比父类更严格 | 相同 | 相同 | 相同 | 不同 |
值类型 8个基本类型
存储是值本身
int i=8;
引用类型 class定义引用
存储是的对象在堆中的地址
使用父类类型指向子类对象
引用内容为子类继承父类的属性和方法
无法引用到子类独有属性和方法
将父类引用转换成子类引用
子类类型 对象名 =(子类类型)父类引用对象名
Son s =(Son) father;
多态
国标 生产标准
指导生产
接口 抽象的
设计、规范、约定、扩展