继承与实现: 1.抽象类可以被子类继承,接口既可以被继承也可以被实现。
方法: 2.抽象类可以做方法声明也可以做方法实现,接口只能做方法声明
变量: 3.抽象类内定义的变量是普通变量,接口定义的变量只能是公共的静态的变量。
4.如果一个类里面有抽象方法,那么这个类只能是抽象类
5.抽象方法要被实现,所以抽象方法不能是静态的,也不能是私有的
6.抽象方法只能声明,不能实现
补充:
接口:接口内的定义的成员变量都是静态的常量,都是必须是被public static final修饰的,就算你定义的时候没有加修饰符,系统也会帮你加上去。
接口内的方法都是抽象方法,就算你定义的时候没有加上abstract,系统也会帮你加上。而且,接口内的方法不能用private或protectd修饰,只能用public或者默认,默认的话最后会 被自动转成public。
修饰接口的修饰符可以是public、friendly,但是一定是abstract的。
继承指定接口的类,必须重写并实现该接口所有的方法,否则该类就是抽象类。
抽象类:含有一个或多个抽象方法的类就是抽象类,但是抽象类不一定需要含有抽象方法,例如你定义一个类为abstract,但是这个类里边不含有抽象方法也是可以的,只是意义不大。
抽象类和普通类的区别大致有3点:
1.抽象类不能实例化,抽象类只能用public和firendly修饰。
2.抽象类的方法不能用private修饰,public、protected、默认都可以
3.如果一个类继承了一个抽象类,就必须实现这个父类的所有抽象方法,否则这个类也是一个抽象类。
来源:https://www.cnblogs.com/Zchaowu/p/7476430.html