一.多态
1.1多态的概述
什么是多态?
多态是在继承、实现情况下的一种现象,表现为:对象多态、行为多态。
多态的前提
有继承/实现关系;存在父类引用子类对象;存在方法重写。
多态的注意事项
多态是对象、行为的多态,Java中的属性(成员变量)不谈多态。
比如:Student和Teacher是Person的子类
1.2多态的好处
在多态形式下,右边的代码是解耦合的,更便于扩展和维护。
-
怎么理解这句话呢?比如刚开始p1指向Student对象,show方法执行的就是Student对象的业务;假如p1指向Teacher对象 ,show方法执行的自然是Teacher对象的业务。
定义方法时,使用父类类型作为形参,可以接收一切子类对象,扩展行更强,更便利。
1.3类型转换
虽然多态形式下有一些好处,但是也有一些弊端。 在多态形式下,不能调用子类特有的方法
多态形式下不能直接调用子类特有方法,但是转型后是可以调用的。这里所说的转型就是把父类变量转换为子类类型。格式如下:
//如果p接收的是子类对象
if(父类变量 instanceof 子类){
//则可以将p转换为子类类型
子类 变量名 = (子类)父类变量;
}
关于多态转型问题,我们最终记住一句话:原本是什么类型,才能还原成什么类型
二.final关键字
2.1final修饰符的特点
- final关键字是最终的意思,可以修饰类、修饰方法、修饰变量。
- final修饰变量:该变量只能被赋值一次。
- final修饰类:该类称为最终类,特点是不能被继承
- final修饰方法:该方法称之为最终方法,特点是不能被重写。
报错
例外 : 修饰引用类型的变量,我们是不能改变arr变量里的的地址值的,但是我们可以改变引用类型变量指向的对象的里面的内容.
2.2常量
- 在实际运用当中经常使用final来定义常量
被 static final 修饰的成员变量,称之为常量。
通常用于记录系统的配置信息
为了方便在其他类中被访问所以一般还会加上public修饰符
常量命名规范:建议都采用大写字母命名,多个单词之前有_隔开