1.当一个类中只要有抽象方法,这个类就必须是抽象类.
2.当一个类中,既有抽象方法,又有非抽象方法,那么这个类参考第一条,也必须是抽象类.
由于抽象类中有抽象方法,所以不能直接创建对象.对于实现了该类的其他类,想要创建对象,就必须复写抽象类,使其变为非抽象类.
也就是说抽象类中必须有抽象方法,也可以有非抽象方法.
对于接口,接口中的方法必须全部都是抽象的,不能含有非抽象方法,否则就是抽象类.
接口中都是抽象方法,所以也不能直接创建对象,必须由其他类实现该类并且全部复写其抽象类才能创建对象.
至于什么时候使用接口,什么时候使用抽象类,就要看你具体要求,如果你创建的对象使用到一个接口中的全部方法,覆盖其全部抽象方法,就使用接口.
如果需要实现部分方法,就可以使用某些抽象类中的抽象方法将其实现即可.
接口的出现是java为了避免单继承的局限性,提高功能扩展性而出现的. |