抽象类:
1.抽象类中可以存在构造方法,可以存在普通属性、静态属性、方法、静态方法。
2.抽象类中可以存在抽象方法,也可以不存在抽象方法。
3.如果一个类中有一个抽象方法,那么此类一定是抽象类,但抽象类不一定有抽象方法。
4.抽象类中的抽象方法,需要有子类来实现,如果子类无法实现该方法,则子类需要被定义为抽象类。
5.抽象类不能被实例化,抽象类和抽象方法必须被abstract修饰,抽象类中的抽象方法不能被private、static、synchronized、native访问修饰符修饰,可以被public protected修饰。
6.抽象类可以被其子类无条件向上转型。
如 Abstract class A,class B extends A
A a=new A()//编译器不会通过
A a=new B()//通过
接口
1.在接口中只有方法的声明,没有方法体。
2.在接口中只有常量,因为定义的变量,在编译的时候都会默认的加上public static final
3.在接口中的方法,只能被public来修饰
4.接口中没有构造方法,也不能实例化接口的对象
5.接口可以实现多继承
6.接口中定义的方法都需要由实现类来实现,如果实现类不能实现接口中的所有方法,则实现类被定义为抽象类
7.接口可以继承接口(extends),接口不能实现接口。