1多态:对象在不同时刻表现出来的不同状态(父类子对象)
针对引用类型:
编译期间:
运行期间:
Person p = new Person() 是一样的
举例:水 固态,液态,气态
狗 狗,动物,宠物,食物
条件:
1.继承,实现
2.方法重写
3.父类引用指向子类对象 Fu fu = new Zi();
多态间的成员特点:方法有重写,变量没有
成员变量:
编译看左边,运行看左边
成员方法:
编译看左边,运行看右边
弊端:父类引用不能使用子类特有功能
基本类型:隐式转换,显示转化
引用类型: 向上转型,向下转==
类型转换异常:java.lang.ClassCastException
异常:数组 1空指针 2角标越界
数学 3除0
多态 4类型转换
避免:强转时只能转换成对象的类型或者父类型
多态的好处:为了提高代码的拓展性,可维护性
开发原则:对扩展开放,对修改关闭
2.抽象
针对没有方法体的方法--抽象方法
abstract,修饰类表示类不能被实例化
特点:
1.关键字修饰
2.有抽象方法的类一定是抽象类
抽象类不一定有抽象方法(接口)
3.抽象类不能被实例化
4.如果一个类继承抽象类
要么是抽象类
要么重写所有的抽象方法
成员特点:
成员变量:可以有变量,也可以有常量
构造方法:有构造方法,虽然不能实例化,但是可以给子类用
成员方法:
抽象:要求子类做某些事情
非抽象:提供代码复用性
共存问题:
private,final,static不共存
3.接口
抽象类中只有抽象方法
interface implements
格式:
interface 抽象类
class 类名 implements 抽象类
基本特点: 1.接口不能被实例化
2.接口中的方法要么被子类实现,要么子类是抽象类
3.
成员特点: 1.成员变量:只有常量(public static final)
2.构造方法:没有构造方法。
任何类如果没有继承父类,那么就继承object类
3.成员方法:public,abstract
关系特点:
类与类关系:继承,单继承,多重继承
类与接口:实现,多实现,一个类继承一个类实现多个接口
接口与接口关系: 继承,多继承,多重继承
4.接口的思想
特点:
接口是对外暴露的规则
接口是程序的功能扩展
接口降低耦合性
耦合:类与类的关系
内聚:自己实现功能
接口可以多实现
5.成员特点
抽象类:
成员变量:可以变量,也可以常量
构造方法:有构造
成员方法:可以抽象,也可以非抽象
接口:
成员变量:只有常量 public static finall
成员方法:只能抽象方法public abstract
关系特点:
类与类:
类与接口:
接口与接口
设计理念:
抽象类被继承,这个类中定义的是整个继承体现的共性内容。
体现: is a
接口被实现,这个接口中定义的是整个体现的扩展内容
体现: like a |
|