Java面向对象的四大特性:
继承 封装 多态 (抽象)
多态
同一个对象 体现出来的多种不同形态(身份) 将一种行为表现出不同的效果
要想实现多态的效果 需要现有继承关系
体现:
1.父类类型的引用 指向 子类的对象
Person p = new Teacher();
2.该引用只能调用父类中定义的属性或方法
3.如果子类中将父类的方法重写,那么调取方法后执行的结果是子类重写之后的那个结果
如果父类与子类有同名的属性 执行父类的属性
如果父类与子类有同名的方法(重载) 执行子类重写之后的方法
4.若想要调用子类中独有的成员
(强制类型转化) 造型 铸型 (向上/向下转型)
5.造型时(强制向下转型时) 可能会出现一个运行时异常
ClassCastException 造型 铸型 异常
如果想要避免造型的异常 可以用instanceof关键字来进行判断
对象 instanceof 类
常规异常:
1. 1. InputMismatchException 输入不匹配
2. NumberFormateException 数字格式化异常
3. ArrayIndexOutOfBoundsException 数组索引越界
4. NegativeArraySizeException 数组长度负数
5. NullPointerException 空指针异常
6. ArithmeticException 算数异常
7. ClassCastException 造型异常 将对象的类型还原时 与真实类型不匹配
知识总结:
适配器模式 Adapter-----结构型模式的一种
缺省适配器模式
解决一个接口(规则) 定义了好多方法
适配器(通常是一个抽象类) 添加某些具体实现 (方法内部抛出异常)
每一个子类实现接口 所有的方法
多态:
多态指的是一个对象体现出的多种不同的形态(身份),可以将同一种行为(方法)表现出不同的效果
多态的表现形式:
1.多态的前提需要有继承关系
2.使用父类类型的引用 指向子类的对象 Person p = new Teacher(); 向上转型
3.该引用只能调用父类中定义的属性/方法
4.执行结果 如果调用属性 执行父类的 如果调用方法 看子类是否重写
5.若想要调用子类中独有的成员 将身份还原回去(造型--向下转型)
若需要转换的类型与真实对象的类型不匹配 会产生一个运行时异常ClassCastException
6.为了避免转型时产生的问题 可以利用instanceof进行判断比较
比较前面对象和后面类型是否匹配 p instanceof Teacher