抽象类详解
1.抽象类不能被实例化,但是抽象类的非抽象子类可以被实例化。
2.抽象类可以没有抽象方法,但是有抽象方法一定为抽象类。
3.抽象方法只是声明,不能有方法体和实现。
4.构造方法,类方法不能为抽象方法。
5.抽象类的子类必须实现抽象方法,除非子类也是抽象类。
抽象类和接口的区别
1.抽象类如果需要实例化,子类继承了这个抽象类并且实现父类所有的抽象方法。而接口需要实例化,子类实现这个接口的所有方法。
2.抽象类要被子类继承。而接口要被子类实现。
3.接口只能对方法进行声明,而抽象类可以实现非抽象的方法。
4.接口里面的方法都要被实现,所以接口是设计的结果,而抽象类是重构的结果。
5.抽象类的所有方法都要被实现,所以抽象类的方法不能是static,private,final的。
6.接口可以继承接口,甚至可以继承多个接口。但是子类只能继承一个父类。
7.抽象类主要用来抽象类别。接口用来抽象方法和功能。所以抽象类更关注本质,接口更关注操作。