一、多态
1. 对象的多种形态
2. 一个对象可以创建多个形态 比如:Student可以创建Person形态
3. 前提是①Student继承了Person ②并且方法进行了重写 ③Fu f = new Zi();
4. Animal a = new Dog(); a.name是父类中的name属性,a.show()是子类中的show方法
简单来说:属性用父类的,方法用子类的
这是因为:
编译看左边(看父类中有没有这个成员变量/成员方法,有的话才能正确编译运行,没有的话会 报错)
成员变量:运行看左边 只要父类中有,就是用父类中的
成员方法:运行看右边,用子类中的(因为子类重写方法时会覆盖掉父类的)
5. 多态的弊端:不能使用子类的特有功能(除非强转)(强转时最好用instanceof进行判断)
二、final修饰符
1. 被final修饰的方法,是最终方法,不能被重写(一般用于,固定规则)
2.被final修饰的变量,叫做常量(例如PI = 3.14)
变量名规则:全部大写 若是多个单词,中间用_隔开
①基本数据类型:数据值不能变
②引用数据类型:地址值不能变,里面的数据还是可以变的
三、各种修饰符
2.使用规则
一般只用private、public
成员变量私有 、 方法公开
特例:如果方法中的代码是抽取其他方法中共性代码,这个方法一般也私有
(不想被其他类使用)
四、代码块
1. 局部代码块:节省内存空间(已淘汰)
2. 构造代码块:写在成员位置的代码块(不怎么用了,不够灵活)
作用可以把多个构造方法中重复的代码抽取出来
执行时机:我们在创建本类对象的时候会先执行构造代码块再执行构造方法
3. 静态代码块:static 随着类的加载而加载 只执行一次
用处:在程序刚开始的时候,做一些数据初始化