8.08
Java面向对象三大特征之 多态
生活中的多态
-<input> 根据不同type属性值,产生不同形态
-水根据不同温度条件,产生不同形态。 常温:液态水 沸点:气态水(水蒸气),凝点:固态水(冰)
总结:一件事根据不同的环境条件,产生不同的 结果/形态
继承:主角是子类
多态:主角是父类
编程中的多态:
一个父类根据使用不同的子类对象,调用同样的方法,产生不同的结果
多态的前提条件
1.必须出现在继承体系中
2.必须要有方法重写
3.必须满足一种写法 "向上转型"
多态的验证
满足以上三个条件的基础上,调用同一个方法,产生不同的结果
多态的其他常见写法
1.当数组的类型是父类的类型时,所有子类都能存入数组中
满足 向上转型
2.当方法的形式参数是父类的类型时,所有的子类对象都能传进来
满足 向上转型 (父类类型a) 传参 (子) a = 子)
3.当方法返回值的类型是父类的类型时,所有的子类对象都能返回出来
多态的作用与弊端
好处:让程序更加灵活,提高代码扩展性
缺点:在多态的环境中,无法访问子类特有的方法
解决方法:向下转型 ==> 强转 (数据类型)变量名
接口类型(对标css)
定义关键字 interface
接口与类的对比
-成员属性
默认所有的属性都是常量(不变final+共享 public static)
接口中属性的定义可以省略public final static
-构造方法
接口中没有构造方法
-成员方法
默认情况下绝对是抽象方法,可以省略public abstract
接口的作用
1.设计
2.规则/协议 (抽象方法)
继承体系
-实现关系 类与接口之间的关系(师徒)
关键字 implements
class A implements 接口B,接口C,....
-特点:
类A可以实现多个接口(多实现)
案例:
模拟电脑计算机的USB接口运行
-电脑类
-USB接口
-鼠标子类
-键盘子类
-测试类
心得:忘记加关键字了,平白无故浪费好多时间,而且代码量变多,对需要的数据的类型判断出现差错,需要多加练习。