访问权限
工程 包 子类 本类
public √ √ √ √
protected × √ √ √
default × √ × √
private √ × × ×
final
final class 最终类 不能被继承
final int 常量 不能改变值
final Obiect 常量 不能改变引用地址
final 方法 最终方法 不能被重写
执行顺序
父类静态代码块>子类静态代码块>父类代码块>父类构造方法>子类代码块>子类构造方法
构造方法
在没有构造方法时,系统自动生成默认无参构造方法
在写了构造方法 系统不会再生成
如果父类只有有参的构造方法,子类必须显示调用父类构造方法
重载
方法名相同,参数列表不一致
重写
方法名相同,参数列表相同,返回值相同,访问权限大于等于父类的访问权限
封装
最少暴露
最少知道原则,只知道他最基本的信息
get set习惯将所有的属性都作为private,给定需要暴露的属性get与set方法
继承
里氏替换原则,父类能存在的地方,子类必须可以存在
子类修改了父类的方法
不要去重载父类的具体方法,只能重载父类的抽象方法.
版本迭代:修复bug,增加功能。
重构代码:
好处
扩展性
向下转型 instanceOf 去检测是否是类的实例
实例 instanceOf 类 返回是一个boolean值
多态
抽象类
只有方法声明,没有方法体,只能存在抽象类或者接口
接口
类A 实现接口 I的5个方法,但是只有3个有用 I1 I2 I5
类B 实现接口 I的5个方法,但是只有3个有用 I3 I4 I5
I1接口 I1 I2
I2接口 I3 I4
I3接口 I5
类A I1 I3 类B I2 I3