1.抽象类不可以实例化抽象类对象,但可以实例化子类对象。
2.抽象类中的抽象方法必须用abstract修饰,不可以省略。
3.构造方法不可以抽象,因为构造方法不能被重写(是每个类独有的)。
4.抽象方法不能是private权限,因为子类重写的方法的权限要大于等于父类。
5.抽象方法不可以被static修饰,因为static修饰的方法不能被重写,也不参与继承。
6.抽象方法不可以被final修饰,因为final修饰的方法不可以被重写
7.抽象类中可以有构造方法,普通方法和变量,对于由static修饰的普通方法可以直接用抽象类的类名来调用
1.接口是一种引用数据类型
2.接口不可以实例化接口本身,但可以实例化子类对象,即发生向上转型
3.接口中一般不能有被实现的方法(即普通方法),只可以有抽象方法,但被static default修饰的方法除外。被static修饰的方法可以用直接用接口名来调用,而被default修饰的方法是依赖对象的,由于接口不能实例化接口对象,所以只能由子类对象来调用或者被重写
4.接口中的每个方法都默认是public abstract的,即抽象的公共的(而对于抽象类,不一定是public)
5.重写接口的方法只能是public
6.接口中可以由普通成员变量,但默认是public static final 修饰的变量,所以在定义时必须初始化。
7.接口中不能有代码块和构造方法。因为接口中没有静态变量等普通变量,所以没必要有代码块和构造方法(注意public static final修饰的是常量,其值不可以修改)
8.接口间可以实现多继承
8.抽象类中不一定要有抽象方法