**
1 抽象类(关键词abstract)
**
1 有些类只能被用来继承,不能直接构造对象
2 class前面加abstract限定词,表示是抽象类
3 abstract可以修饰方法,表示抽象方法
4 如果一个类不是抽象类,则必须把所有的方法都实现(包括父类中定义的抽象方法)
5 抽象方法只能出现在抽象类中,有抽象方法的一定是抽象类,抽象类不一定全都是抽象方法
6 抽象类 abstract class A {}
7抽象方法 abstract void method(); 抽象方法后面没有方法体
2 final关键字
1 final class A {} 不能被继承
2 final void method() {}; 不能被覆写
3 有 final 方法,并不要求class也是final
4 final修饰属性,属性的值不能变
3 多态
对于一个线性表
1 头插/尾插的方法
对于不同的线性表(顺序表|链表)头插/尾插的行为是不一样的
父类引用类型 变量=子类对象;
ArrayList extends List ; LinkedList extends List;
ArrayList a=new ArrayList();
LinkedList b=new LinkedList;
多态
List a=new ArrayList();
List b=new LinkedList();
向下转型
父类 引用=子类对象;
LIst list=new ArrayList();
向下转型
子类 引用=父类对象
ArrayList arraylist=(Arraylist)list//不能直接转型
假如list不是ArrayList类型,运行时会抛异常
if(list instanceof ArrayList)
{arrayList=(ArrayList)list;}
如果list是ArrayList的对象,则转换