上文链接:Java基础之接口
- final:修饰符,可以用于修饰类、成员方法和成员变量
- final修饰的类:不能被继承,不能有子类
- final所修饰的方法:不能被重写
- final所修饰的变量:不能被修改,是常量
final、finally、finalize 的区别:
- final:用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,被其修饰的类不可继承。
- finally:异常处理语句结构的一部分,表示总是执行。
- finalize:Object
类的一个方法,在垃圾回收器执行的时候会调用被回收对象的此方法,可以覆盖此方法
常量:
- 字面值:1、2、3…
- 自定义常量:被final所修饰的成员变量,一旦被初始化则不可改变
注意:
自定义常量被絮被初始化,可以选择显示初始化或者构造初始化
多态
多态的前提:
- 子父类的继承关系
- 方法的重写
- 父类引用指向子类对象
动态绑定:
- 运行期间调用的方法是根据其具体的类型
public class DuoTai {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
student s=new a();
s.study(); //输出结果为:学习数学
}
}
class student{
public void study(){
System.out.println("学习英语");
}
}
class a extends student{
public void study(){
System.out.println("学习数学");
}
}
多态的成员特点
- 成员变量:编译时看的是左边,运行时看的是左边
- 成员方法:编译时看的是左边,运行时看的是右边
- 静态方法:编译时看的是左边,运行时看的是左边
多态的向上转型和向下转型:
引用类型之间的转换
向上转型:由小到大, 基本数据类型的转换
自动类型转换 :由小到大
强制类型转换:由大到小
多态的优缺点:
- 优点:可以提高可维护性(多态前提所保证的),提高代码的可扩展性
- 缺点:无法直接访问子类特有成员