1 由abstract修饰的类叫做抽象类 也可以修饰抽象方法
2 abstract修饰的抽象方法不可以在抽象类当中实现 但一定要在子类当中重写 并实现
public abstract class p1 { public abstract void work(); public void run() { System.out.println("run"); } } class programmer extends p1{ @Override public void work() { // TODO Auto-generated method stub System.out.println("i'm worker"); } }
3 只有抽象类当中才能有抽象方法 普通类当中不能有抽象方法
4 抽象类当中不一定全是抽象方法 也可以使用普通方法 普通方法在抽象类中必须是实现好的 子类不会被强制重写抽象类当中的普通方法
5 抽象类不能被实例化 但是也可以使用多态(父类的引用指向子类的对象)
6 final不能和abstract一起用 final修饰的方法是禁止要求重写 abstract要求的是必须重写 两者冲突
7 private修饰的方法对子类不可见 abstract修饰的方法要求重写冲突
8 抽象方法不能使用static static是针对类层次 抽象方法针对对象层次 不能一起使用
9 子类继承抽象类后 如果不想实现抽象类中的抽象方法 那么此类必须是个抽象类
10 抽象类可以有构造方法 目的是子类在初始化之前先初始化父类 记载new子类构造器 之前先new父类构造器
抽象类一定是个父类吗? 是的 因为需要子类覆盖其方法后才可以对子类实例化