多态:同一类型的对象执行同一个行为,在不同的状态下表现出不同的行为特征
对于方法的调用 编译看左边(左边没有的方法不能实现) 运行看右边
变量调用编译看左边,运行看左边
原因:方法存在重写
多态 : 父类 名称 = new子类
接口名称 = new 实现类
多态优势:多态形式下 右边对象可以实现组件化转换 业务功能随之改变 便于扩展维护
实际开发过程中 父类类型作为方法形式参数传递子类对象给方法
可以实现类与类直接的解耦
缺点 多态形式下不能直接调用子类特有的功能
多态形势下引用类型的强制类型转换
编译阶段不会报错 但是运行时会报错 ClassCastException
强转之前需要判断真是变量类型
方法 : 变量instanceof 类型 若相同返回true
内部类
定义在一个类里面的类就是内部类
作用:提供更好的封装性,内部类会有更多的权限
分类: 静态内部类 实例内部类 局部内部类 匿名内部类
静态内部类:有static修饰 属于外部类本身 特点和外部类完全一样 只不过是在外部类内
成员内部类
无static修饰的内部类 属于外部类对象
匿名内部类
没有名字的局部内部类
New 类名抽象类接口形参
包的命名规范:公司域名倒写加技术名称