多态
实现多态的方法是重写跟重载,其中重写发生在子类里,重载发生在同一个类里。
- 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。
- 重写方法名,参数,返回类型相同,不能缩小访问权限,不能抛出更多到异常。
String、StringBuffer、StringBuilder区别
- 这三个类都是final类,其中String继承Object类、另外两个继承自AbstractStringBuilder类,都是通过字符数组实现的。
- String是不可变类,而StringBuilder,StringBuffer是可变类。String类没有append()、delete()、insert()三个成员方法,另外两个有。
- 运算速度String<StringBuffer<Stringbuilder。因为每次改变String对象到值都会重新申请新到对象,然后把引用指向新对象,原对象被GC回收,这个过程消耗比较多的时间,其他两个不需要申请对象,因此对象经常改变就用后面两种。因为StringBuffer线程安全,因此速率会慢一些。
final关键字
- final数据:对于基本到数据类型,初始化后不能改变数值,对于对象到引用,不能改变引用的指向。
- final方法:不能被重写。
- final类:不能被继承。