abstract与final不能同时出现
static与final 定义常量
final关键字
修饰类,最终类,无法被继承 比如String scanner
修饰属性,最终属性,无法修改值
基本引用数据类型 无法修改本身的值
引用数据类型 无法修改地址值,内部的内容可以改
修饰方式,最终方法,无法被重写
Java面向对象之多态
生活中的多态
<input>根据不同的type属性值,展示不同的形态
type=“text”文本框
type=“password”密码框
type=“button”按钮
H2o根据不同的温度,产生不同的形态
-常温 液态 水
-超过100摄氏度 沸腾 气态 水蒸气
-零下 固态 冰
奥特曼根据不同战斗条件,变化不同的形态
-普通战斗 常态 红紫相间
-力量特大的怪兽 力量形态 全红
-速度快/会飞 天空形态 全紫
单纯继承:主角 子类
多态:主角 父类
编程中的多态
一个父亲,根据,创建不同的子类,调用同一个方法,产生不同的结构
多态的前提条件(全部满足)
向上转型 引用是父类 对象是子类,父类引用指向子类对象
Role role = new Hero () ;
Hero hero = new Hero () ;
Role role = hero;
多态的验证
在满足以上三个条件的基础上,所有创建出来的子类对象调用同一个方法产生不同的结果。
多态的常见写法
多态的好处
让程序更加灵活,提高了代码的扩展性
多态的缺点
在多态的环境中,对象名无法直接访问子类特有的方法
解决方案:向下转型 _____强转
引用数据类型:数据,对象/类,接口
Java接口
定义关键字 interface
接口与类对比
成员属性
默认都是常量 public static final (修饰符可以省略) 常量的命名规范全部大写下划线分割
构造方法
没有构造方法(不能写)接口无法实例化
成员方法
接口中的成员方法默认都是抽象方法
其中 public abstract 都能省略
接口作用
设计
规定/协议
继承体系中的实现关系
实现关系:类与接口之间的关系(师徒)
关键字 implements
class A implements 接口B 接口C 接口D
特点:
类A必须重写接口中所有的抽象方法,除非A是个抽象类