一、抽象类
1、为什么要用抽象类
当我们在做子类共性功能抽取时,有些方法在父类中并没有具体的体现,这个时候就需要抽象类了。在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类。
2、抽象类的基本原则
1)抽象类和抽象方法必须使用 abstract 关键字修饰
2)抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
3)抽象类不能实例化
4)抽象类可以有构造方法
5)抽象类的子类:要么重写抽象类中的所有抽象方法,要么是抽象类。
二、final
1、为什么要用final
final代表最终的意思,可以修饰成员方法,成员变量,类。不希望成员方法,成员变量,类,会被改变,所以要用到final。
2、final的基本原则
fianl修饰类:该类不能被继承(不能有子类,但是可以有父类)
final修饰方法:该方法不能被重写
final修饰变量:表明该变量是一个常量,不能再次赋值
变量是基本类型,不能改变的是值
变量是引用类型,不能改变的是地址值,但地址里面的内容是可以改变的
public static void main(String[] args){
final Student s = new Student(23);
s = new Student(24); // 错误
s.setAge(24); // 正确
}