1.抽象类和接口都不能被直接实例化,抽象类的变量只能指向子类对象,接口变量只能指向实现类对象
2.抽象类中可以定义抽象方法和具体的方法,但是在接口中只能定义抽象方法
3. 抽象类中定义的变量是普通属性,在接口中定义的变量只能是公共的静态常量。
4. 抽象类只能单根继承,但是接口可以多实现
5.private和static的方法,都会默认加上final修饰符,所有都不能被子类重写。
6.继承和接口都是抽象的结果
7.继承用于在相关实例中,共享通用代码重用方法和属性
8.接口用于在不同的实例中共享通用行为,重用方法
单一职责原则:一个类应该只有一个引起它变化的原因,不要让这个类拥有多个引起变化的理由,换句话,一个类拥有的职责应该精良单一,不要给一个类分配过多的职责。